2016-01-22 92 views
0

我有一个静态文件的目录结构,我想用我的Web服务器。说:静态树内的动态路由

project/ 
    directory1/ 
    directory2/ 
    directory3/ 
     subdirectory1/ 
     subdirectory2/ 
     subdirectory3/ 
      static.html 
      static.png 
      static.js 
      static.css 
... 

没有什么魔术直到那里,这里是一个简单的虚拟主机,我们可以使用。

<VirtualHost *:80> 
    ServerName project.dev 
    DocumentRoot "path/to/project" 
    <Directory "path/to/project"> 
     Require all granted 
    </Directory> 
</VirtualHost> 

现在让我们说,我们要拦截GET http://project.dev/directory3/subdirectory3/static.html做一些脚本,并成为我们想要代替。

问题:我们如何配置我们的Apache vhost使用php,python,ruby或任何语言来解释此请求并返回一些响应而不是实际的静态文件?

喜欢的东西:

#... 
<Directory "path/to/project"> 
    Require all granted 
</Directory> 
<Directory "path/to/project/directory3/subdirectory3/static.html"> 
    send_to_some_framework "path/to/project/app.php" 
</Directory> 
#... 
+0

你不想''适用于目录(明显),而不是单个文件。改为尝试''或''。 –

回答

1

我会用mod_rewrite。喜欢的东西:

RewriteRule ^/directory3/subdirectory3/static.html$ path/to/project/app.php [L] 

AliasMatch

AliasMatch "^/(.*/static\.html)$" "path/to/project/app.php$1" 
+0

'AliasMatch'确实为我工作。 (在拦截'*/static.html'时添加了替代选项) –