2015-09-25 225 views
0

我试图让只有重定向当变量动作是空的网站索引像一个重写规则:重写规则的Apache的htaccess

RewriteCond %{REQUEST_URI} /file.php 
RewriteCond %{QUERY_STRING} !^action= [NC] 
RewriteRule ^([^/]+)/?$/[L] 

访问file.php应该重定向到/和文件。 php?action = value不应该重定向。

但它不工作,我做错了什么?

回答

0

您可以使用:

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] 
+0

他们都不是为我工作,不知道这是因为我使用Apache 2.4事件MPM –

+0

我加'RewriteEngine叙述on'。结果或问题是什么?这工作在这里很好:http://htaccess.madewithlove.be/ – Croises

+0

是的,我认为我有一个编译apache2模块的问题,谢谢你的规则! –