我想将PHPSESSID与URL的查询字符串部分(?session_id = b0300e9317e626da2c3f9a45e28b5106)进行匹配。但我无法做到这一点。我认为第二条规则似乎不起作用。我错了什么?
RewriteCond %{HTTP_COOKIE} !PHPSESSID=(\w+) [NC]
RewriteCond %{HTTP_COOKIE}:%{QUERY_STRING} ^PHPSESSID=(.*?);:(?!.*?session_id=\1).* [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/? [R=302,L,NC]
答案 0 :(得分:0)
第一个OR
上缺少RewriteCond
个标记,两个条件都被破坏了。它应该是这样的:
RewriteCond %{HTTP_COOKIE} !(?:^|\s)PHPSESSID= [OR]
RewriteCond %{HTTP_COOKIE};;%{QUERY_STRING} !(?:^|\s)PHPSESSID=([^;]+).*?;;(?:.*?&)?session_id=\1(?:$|&)
RewriteRule ^ https://%{HTTP_HOST}/? [R=302,L]