0

仅当 cookie 与 URL 请求不匹配时,我才需要重定向到 URL,如下所示:

URI: http://mywebsite/myapp/myservice/my123token
COOKIE: MYCOOKIE=my456token


RewriteCond %{REQUEST_URI} .*/myservice/(.*)
RewriteCond %{HTTP_COOKIE} .*MYCOOKIE="(.*);?.*
RewriteRule .* http://mywebsite/myapp/myservice/%1

所以发生的事情是传入的请求带有令牌my123token但 cookie 有令牌my456token只有这样 Apache 才应该使用 URI 令牌值重定向到显示的 url。

所以问题是我如何实现第二个条件,以便仅在令牌不匹配时应用重写规则。

我觉得这会以某种方式涉及使用变量,但不确定如何,请帮忙。非常感谢!

4

1 回答 1

1

您可以通过在正则表达式中使用反向引用来做到这一点。在我的帽子顶部:

RewriteCond %{HTTP_COOKIE} .*MYCOOKIE=(.*);?.*
RewriteCond $1=%1 !^(.*)=\1$
RewriteRule myapp/myservice/(.*) /myapp/myservice/%1 [L,R=302]

请注意,=它只是用作一些分隔符。

PS。我"从 rewriteCond 中删除了,因为您的 cookie 似乎不包含任何内容。

于 2013-04-04T16:50:08.567 回答