使用PHP编写CMS并使用Apache .htaccess进行重定向。我有一个像这样的文件系统:
/MySites [dir]
/MySite1.com [dir]
/css [dir]
style.css [file]
/pages [dir]
/MySite2.com [dir]
compiler.php [file]
我的.htaccess文件如下所示:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) compiler.php?id=$1 [L]
RewriteRule ^(.*)/ compiler.php?id=$1 [L]
此//localhost/MySites/MySite1.com/home
(无.htm
)转到compiler.php?id=MySite1.com/home
。良好...
但//localhost/MySites/MySite1.com/css/style.css
等现有文件也会被重定向:compiler.php?id=MySite1.com/css/style.css
。坏...
我RewriteRule
的错误是什么?
答案 0 :(得分:2)
RewriteCond
仅适用于下一个RewriteRule
,而不适用于两者。因此,您的第二条规则是重写与模式^(.*)/
相匹配的所有内容。