Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带变量的apacherewritecond_Apache_Variables_Mod Rewrite - Fatal编程技术网

带变量的apacherewritecond

带变量的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

只有当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

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


我觉得这可能涉及使用变量,但不确定如何使用,请帮助。非常感谢

您可以通过在正则表达式中使用反向引用来实现这一点。在我的帽顶上:

RewriteCond %{HTTP_COOKIE} .*MYCOOKIE=(.*);?.*
RewriteCond $1=%1 !^(.*)=\1$
RewriteRule myapp/myservice/(.*) /myapp/myservice/%1 [L,R=302]
注意,
=
只是用作一些分隔符

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