我有一个网站parse request URLs by themselves的各个部分,有些则没有(例如vBulletin论坛)。我必须将请求发送到适当的脚本的.htaccess是:
# wiki, shop, admin
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !(.*)\.js
RewriteRule ^wiki/(.*)$ w/index.php?title=$1 [PT,L,QSA]
RewriteRule ^wiki/*$ wiki/ [L,QSA]
RewriteRule ^shop/ /shop/shop.php [NC,L]
RewriteRule ^forum/admincp/pkr/ /forum/admincp/pkr/pkr.php [NC,L]
这不符合我的预期。我忘记了重写条件仅适用于遵循它们的第一条规则。问题是,如何将这些RewriteConditions应用于所有这些规则,而不必将其复制粘贴4次?
出问题的是:
RewriteCond%{REQUEST_FILENAME}!-f
是的...
最佳答案
反转表达式并将其附加到中断规则:
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} (.*)\.js
RewriteRule ^ - [L]
关于php - 有一些RewriteCond影响多个规则,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1715765/