带变量的apacherewritecond
只有当cookie与URL请求不匹配时,我才需要重定向到URL,如下所示:带变量的apacherewritecond,apache,variables,mod-rewrite,Apache,Variables,Mod Rewrite,只有当cookie与URL请求不匹配时,我才需要重定向到URL,如下所示: URI: http://mywebsite/myapp/myservice/my123token COOKIE: MYCOOKIE=my456token RewriteCond %{REQUEST_URI} .*/myservice/(.*) RewriteCond %{HTTP_COOKIE} .*MYCOOKIE="(.*);?.* RewriteRule .* http://mywebsite/myapp/my
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
因此,问题是如何实现第二个条件,以便重写规则仅在令牌不匹配时应用
我觉得这可能涉及使用变量,但不确定如何使用,请帮助。非常感谢 您可以通过在正则表达式中使用反向引用来实现这一点。在我的帽顶上:
RewriteCond %{HTTP_COOKIE} .*MYCOOKIE=(.*);?.*
RewriteCond $1=%1 !^(.*)=\1$
RewriteRule myapp/myservice/(.*) /myapp/myservice/%1 [L,R=302]
注意,=
只是用作一些分隔符
另外,我从rewriteCond中删除了“
,因为您的cookie似乎不包含任何内容