2014-01-18 37 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] 
相关问题