我正在尝试重写规则,仅当变量动作为空时重定向到网站索引,如:
RewriteCond %{REQUEST_URI} /file.php
RewriteCond %{QUERY_STRING} !^action= [NC]
RewriteRule ^([^/]+)/?$ / [L]
访问file.php应该重定向到/和file.php?Action =value不应该重定向。
但是它不工作,我做错了什么?
您可以使用:
RewriteEngine on
RewriteCond %{QUERY_STRING} !^action= [NC]
RewriteRule ^file.php / [NC,L,R]
如果您测试变量action
的存在,则此操作有效。
如果您需要测试空变量的存在,请使用:
RewriteCond %{QUERY_STRING} !^action=[^&]+ [NC]
RewriteRule ^file.php / [QSD,NC,L,R]
[QSD]仅在Apache 2.4.0之后有效。如果不是您的情况,请使用:
RewriteRule ^file.php /? [NC,L,R]