我有一些通配符重定向,目前工作正常...
https://www.domain-name.com/$1
但是,我想在它之后添加一个GET变量,以便在我的CMS中,我可以跟踪引用者。我已尝试过以下内容,但只是将$ 1输出到URL。
https://www.domain-name.com/$1?redirect=foobar
希望这是一个简单的解决方法!
编辑 - 这些重定向是从cPanel生成的,因此生成的代码是......
RewriteCond %{HTTP_HOST} ^domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^/?$ "https\:\/\/www\.domain\.uk\/\$1\?redirect\=redirect" [R=301,L]
答案 0 :(得分:1)
这里没有通配符重定向。它只是将主页重定向到字面/$1?redirect=redirect
。此外,转义(\
)目标网址的任何字符都没有意义。
为了使用附加的查询字符串将每个请求重定向到自身
# prevent a redirect loop
RewriteCond %{QUERY_STRING} !redirect=
# append query string
RewriteRule ^(.*)$ https://www.domain.uk/$1?redirect=foobar [R,L]
如果您想保留任何现有的查询字符串,请添加QSA
标记,例如R,L,QSA
如果一切正常,您可以将R
替换为R=301
(permanent redirect)。 从不使用R=301
进行测试。