2014-01-18 41 views
1

我有一個網站,我想重寫我的網站上的所有請求到一個頁面。但是,如果有特定子目錄的請求,我希望像往常一樣處理這些請求。mod_rewrite除了特定目錄以外的所有請求到一個文件

這裏是我當前的.htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^lib/(.*)$ lib/$1 [END] 
RewriteRule ^scripts/(.*)$ scripts/$1 [END] 
RewriteRule ^styles/(.*)$ styles/$1 [END] 
RewriteRule ^tpl/(.*)$ tpl/$1 [END] 
RewriteRule ^services/(\w+)$ services/$1.php [END] 
RewriteRule ^services/(\w+)/(\w+)$ services/$1.php?id=$2 [END] 
RewriteRule ^.*$ index.html [END] 
</IfModule> 

如果我去site/scripts/ascript.js它的工作原理:該腳本傳遞。除了lib規則以外,所有規則都可以使用。

如果我去site/lib/something.js它不起作用,index.html交付。

爲什麼lib不工作?

回答

0

讓你的規則是這樣的:

RewriteEngine On 
RewriteBase/

RewriteRule ^lib/(.*)$ lib/$1 [END] 
RewriteRule ^scripts/(.*)$ scripts/$1 [END] 
RewriteRule ^styles/(.*)$ styles/$1 [END] 
RewriteRule ^tpl/(.*)$ tpl/$1 [END] 
RewriteRule ^services/(\w+)$ services/$1.php [END] 
RewriteRule ^services/(\w+)/(\w+)$ services/$1.php?id=$2 [END] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^.+$ index.html [END] 
相關問題