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

Apache 基于查询字符串参数-htaccess重写Cond,apache,.htaccess,mod-rewrite,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:myre

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

 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作为重写条件,而是想确定是否选择了a1

基于widget.com/?id=1555&a1=selected&w=hello中的查询字符串

我当前的代码如下所示:

 SetEnvIf Referer "^http?://(.*)/" myref=$1
 RewriteCond %{QUERY_STRING} a1=chosen 
 RewriteRule . - [cookie=source:%{ENV:myref}:.%{HTTP_HOST}:1440:/]
我认为问题在于我对查询字符串param的重写条件。我花了12个小时搜索和尝试不同的正则表达式

我还想确保,如果a1=selected在这个表达式中不存在,或者可能有不同的值,那么就不会创建cookie

谢谢你看这个

我只是想让它发挥作用。哈哈

我可以使用原始代码并从.htaccess设置cookie,但我已经在上面搜索了12个小时,但没有结果

还有,有没有办法确保如果有人已经有了cookie,就不会生成新的cookie