基于查询字符串参数的重写 - htaccess

时间:2012-06-07 01:19:29

标签: apache .htaccess mod-rewrite

我有一个如下所示的查询字符串:

 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 =

基于来自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:/]

我认为问题在于我对查询字符串参数重写cond的方式。我花了12个小时搜索并尝试不同的正则表达式。

我还想确保如果此表达式中没有选择a1 =,或者可能具有不同的值,则不会创建cookie。

感谢您查看此内容。

我只想让它发挥作用。洛尔

我可以让原始代码工作并从.htaccess设置一个cookie,但是我已经搜索了12个小时但是无济于事。

此外,有没有办法确保如果有人已经有一个cookie没有生成新的?

0 个答案:

没有答案