web-dev-qa-db-ja.com

RewriteRuleでクエリ文字列パラメータ値を抽出します

クエリ文字列パラメータを削除し、その値からCookieを作成するために、Apache2.4書き換えルールを作成しています。

例えば:

http://example.com/?param1=value1&my_param=my_value&param2=value2

http://example.com/?param1=value1&param2=value2

apache RewriteRuleを使用してCookieを正常に設定していますが、先頭に追加されたクエリ文字列のparam値をCookie値として設定したいと思います。

クエリ文字列からmy_param = my_valueを削除した場合

cookieの値をmy_valueにしたい

これは私がこれまでに行ったことですが、唯一の問題は、「my_value」を取得するために理解できないことです。

RewriteCond %{QUERY_STRING}  (.*)(?:^|&)utm_source=(?:[^&]*)((?:&|$).*)

RewriteCond %1%2 (^|&)([^&].*|$)

RewriteRule ^(.*)$ $1?%2 [CO=utm_source:my_value_here:.example.org:1440:/,R=301]

どんな助けでも大歓迎です!

1
erwan

私の間違いはキャッシュを実行する301でした、私はそれをより単純なrewriteRuleで動作させます

RewriteCond %{QUERY_STRING} ^(.*)my_param=([^&]+)&?(.*)$
RewriteRule ^(.*)$ /$1?%1%3 [CO=my_param:%2:.example.com:1440:/,R=302]
1
erwan