附加查询字符串,包含所有内容

时间:2017-07-03 03:51:53

标签: apache mod-rewrite

我试过以下。这似乎不起作用。

如果引荐来源有字符串google.com,我希望重写规则触发,并保留现有的查询字符串,只需将引荐来源追加到查询字符串的末尾

RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.com.*$
RewriteRule ^(.*)$ ^(.*)$referrer=%{HTTP_REFERER} [QSA]

我确信我的重写中的某些内容是错误的。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

这应该对你更好:

RewriteEngine On
RewriteCond %{QUERY_STRING} !(?:^|&)referrer=
RewriteCond %{HTTP_REFERER} google\.com
RewriteRule ^(.*)$ $1?referrer=%{HTTP_REFERER} [QSA]

答案 1 :(得分:0)

这有效

RewriteEngine On
RewriteCond %{HTTP_REFERER} google\.com
RewriteCond %{QUERY_STRING}    !^referrer=(.*)$    [NC]
RewriteRule ^(.*)$ $1?referrer=%{HTTP_REFERER} [L,R,QSA]

我需要添加一个条件,如果已经有一个referrer查询字符串参数,请不要附加它。另外,我得到了无限循环。

我需要一个外部重定向标志。否则它没有重定向。