如果设置了参数,则不重定向

时间:2013-09-15 12:44:45

标签: .htaccess parameters

我想重定向一个url,除非有一个名为login的参数值为false。 在几个正则表达式测试仪上测试它,它的工作方式与我想要的一样。 但是当涉及到服务器时,它并没有。 我总是被重定向到?login = true。

为什么?

RewriteRule   (.*)write((?!/?login=false).)*$     ?login=true   [L]

2 个答案:

答案 0 :(得分:2)

RewriteRule仅匹配主机名之后和查询字符串之前的所有内容。您需要使用RewriteCond和%{QUERY_STRING}变量。

RewriteCond %{QUERY_STRING} !login=false
RewriteRule (.*)write$ ?login=true [L]

有关详细信息,请参阅the documentation

答案 1 :(得分:0)

RewriteRule (.*)write$ ?login=true [QSA]
RewriteCond %{QUERY_STRING} !name=                      
RewriteRule .? - [S=1]
RewriteRule (.*)write$ ?login=true [L]

现在这样做了 适合我