在 RewriteRule 中提取查询字符串参数值

在 RewriteRule 中提取查询字符串参数值

我正在编写 apache 2.4 重写规则,以便删除查询字符串参数并根据其值创建 cookie。

例如:

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

http://example.com/?param1=value1&param2=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]

相关内容