ルールをCookieの正確な値に一致させるにはどうすればよいですか?私はもう試した:
RewriteCond %{HTTP_COOKIE} ^its=me$ [NC]
RewriteCond %{HTTP_COOKIE} its=^me$ [NC]
RewriteCond %{HTTP_COOKIE} its="me" [NC]
RewriteCond %{HTTP_COOKIE} its=me [NC]
最後はほとんど機能しますが、「me2」のように、値の最後に余分なテキストがある場合に一致します。条件は、its
Cookieの正確な値がme
で、前後に何もない場合にのみtrueになります。
これらの値はnotと一致する必要があります。
もちろん、いくつかのCookieが存在する可能性があり、それらはURLエスケープされる可能性があり、比較が難しくなります。
このようなものはほとんどの場合に機能するはずです:
RewriteCond %{HTTP_COOKIE} its=([^;]+)
RewriteCond %1 ^me$
RewriteRule ......
クッキーのエスケープを解除する必要がある場合は、そのためのリライトマップを追加できます。
RewriteMap unescape int:unescape
RewriteCond %{HTTP_COOKIE} its=([^;]+)
RewriteCond %{unescape:%1} ^me$
RewriteRule ......
より複雑にする必要はありません
RewriteCond %{HTTP_COOKIE} /^(.*;)?its=me(;.*)?$/
Cookieの値に特殊な(URLセーフではない)文字が含まれている場合、Krist van Besienのソリューションがおそらく最も効果的に機能することに注意してください。
オンラインから docs :
'= CondPattern'(辞書式に等しい)
[。 CondPatternが ""(2つの引用符)の場合、これはTestStringを空の文字列と比較します。
これは機能しますか?
RewriteCond %{HTTP_COOKIE} =its=me [NC]