我想重定向一个url,除非有一个名为login的参数值为false。 在几个正则表达式测试仪上测试它,它的工作方式与我想要的一样。 但是当涉及到服务器时,它并没有。 我总是被重定向到?login = true。
为什么?
RewriteRule (.*)write((?!/?login=false).)*$ ?login=true [L]
答案 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]
现在这样做了 适合我