【问题标题】:Apache RewriteCond with Variables带变量的 Apache RewriteCond
【发布时间】:2013-03-25 14:45:53
【问题描述】:

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

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

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

【问题讨论】:

    标签: apache variables mod-rewrite


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-12-18
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 2021-07-22
      相关资源
      最近更新 更多