重写规则apache htaccess


Rewrite rule apache htaccess

我正在尝试重写规则,仅当变量动作为空时重定向到网站索引,如:

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]