2016-01-22 95 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'時添加了替代選項) –