0

我想重定向一个 url,除非有一个名为 login 且值为 false 的参数。在几个正则表达式测试器上对其进行了测试,它可以像我想要的那样工作。但是当涉及到服务器时,它不会。我总是被重定向到 ?login=true。

为什么?

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

2 回答 2

2

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

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

有关更多信息,请参阅文档

于 2013-09-15T12:53:49.817 回答
0
RewriteRule (.*)write$ ?login=true [QSA]
RewriteCond %{QUERY_STRING} !name=                      
RewriteRule .? - [S=1]
RewriteRule (.*)write$ ?login=true [L]

让它现在对我有用

于 2013-09-15T13:37:52.140 回答