我正在尝试匹配Cookie中的值。问题是,Apache使值url编码。所以,如果我这样做:
RewriteCond %{HTTP_COOKIE} ^(.+)$ [NC]
它将抓住这个:
session%3DeXnR1oDL1Reb8Z3Gdgk7Sg%26account%3D2%3B
而不是:
session=eXnR1oDL1Reb8Z3Gdgk7Sg&account=2
因此无法获取帐号来执行此操作:
RewriteRule ^$ /accounts/%1/ [R=301,L]
请帮忙!我已经在谷歌和stackoverflow上到处寻找,没有人解决这个问题。非常感谢你。
答案 0 :(得分:0)
我从来没有找到答案 - 但是,我确实找到了解决办法。对于那些有同样问题的人,这里是:
使用不会进行URL编码的字符分隔您的子Cookie值。我使用短划线字符“ - ”。例如“VAL1 - VAL2”
祝你好运!答案 1 :(得分:0)
您尝试过使用旗帜吗?> NE | noescape?
默认情况下,特殊字符,例如&例如,将转换为等效的十六进制代码。使用[NE]标志可以防止这种情况发生。
RewriteRule ^ / anchor /(.+)/bigpage.html#$1 [NE,R]
以上示例将/ anchor / xyz重定向到/bigpage.html#xyz。省略[NE]将导致#被转换为其等效的十六进制代码%23,这将导致404未找到错误条件。