我有这行代码:
RewriteRule ^(.*)/$ allcities.php?state=$1 [QSA,L]
我怎样才能更改它,以便它不会重写我创建的新目录,例如“admin”。目前正在重写。
答案 0 :(得分:3)
您可以使用RewriteCond
:
RewriteCond %{REQUEST_URI} !^/admin
RewriteRule ^(.*)/$ allcities.php?state=$1 [QSA,L]
请注意RewriteCond
上正则表达式之前的感叹号。它使正则表达式恢复其含义。因此,在这种情况下,如果请求URI不以/admin
开头,则条件为真。
有关详细信息,请参阅mod_rewrite documentation。
答案 1 :(得分:0)
重写规则按接收顺序处理。在处理该规则之前,您需要具有将路由到现有目录的处理程序。例如:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ allcities.php?state=$1 [QSA,L]