htaccess RewriteCond用于子目录无法正常工作

时间:2013-06-04 03:14:18

标签: .htaccess mod-rewrite

我的.htaccess文件是为顶层目录中的主程序编写的,但也想要排除我想运行另一个程序的子文件夹。

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond {REQUEST_URI} !=/ecart
RewriteRule ^files/ - [L]
RewriteRule ^(.*)/$ index.php?layers=$1 [L]
</IfModule>

我正在尝试RewriteCond,但它不起作用。 它应该转到ecart / index.php文件,但是当我将地址设置为www.mydomain.com/ecart时,我仍被带到前端域名

1 个答案:

答案 0 :(得分:1)

您的代码存在逻辑错误的语法错误。 {REQUEST_URI}缺少%个符号,RewriteCond仅适用于下一个RewriteRule。用以下代码替换您的代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !^/ecart(/.*|)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?)/?$ /index.php?layers=$1 [L,QSA]