我正在编写 apache 2.4 重写规则,以便删除查询字符串参数并根据其值创建 cookie。
例如:
http://example.com/?param1=value1&my_param=my_value¶m2=value2
到
http://example.com/?param1=value1¶m2=value2
我成功使用 apache RewriteRule 设置了 cookie,但我想将前面的查询字符串参数值设置为 cookie 值。
如果我删除我的参数=我的值来自查询字符串
我希望 cookie 的值是我的值
这是我到目前为止所做的,唯一的问题是我不知道如何检索“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
我的错误是 301 执行缓存,我使用更简单的 rewriteRule 让它工作
RewriteCond %{QUERY_STRING} ^(.*)my_param=([^&]+)&?(.*)$
RewriteRule ^(.*)$ /$1?%1%3 [CO=my_param:%2:.example.com:1440:/,R=302]