次のようなクエリ文字列があります。
widget.com/?id=1555&a1=chosen&w=hello
このコードを変更しようとしています:
SetEnvIf Referer "^https?://(.*)/" myref=$1
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !corz.org [NC]
RewriteRule . - [cookie=original-referer:%{ENV:myref}:.%{HTTP_HOST}:1440:/]
しかし、Referer を RewriteCond として使用する代わりに、a1=chosen かどうかを判断したい
widget.com/?id=1555&a1=chosen&w=hello の QueryString に基づく
私の現在のコードは次のようになります。
SetEnvIf Referer "^http?://(.*)/" myref=$1
RewriteCond %{QUERY_STRING} a1=chosen
RewriteRule . - [cookie=source:%{ENV:myref}:.%{HTTP_HOST}:1440:/]
問題は、クエリ文字列パラメーターの書き換え条件の方法にあると思います。私は文字通り 12 時間かけて、さまざまな正規表現を検索して試しました。
また、a1=chosen がこの式に含まれていない場合、またはおそらく別の値を持っている場合、Cookie が作成されないようにしたいと考えています。
ご覧いただきありがとうございます。
私はそれを機能させたいだけです。笑
元のコードを動作させ、.htaccess から Cookie を設定することはできますが、これを文字通り 12 時間検索しても無駄でした。
また、誰かがすでに Cookie を持っている場合、新しい Cookie が生成されないようにする方法はありますか?