1

我目前在我的.htaccess文件中有以下内容,可将所有请求重定向到网站的 SSL 版本:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteRule ^(.*) https://www.mydomain.com$1 [R=301,nc]

现在,我想将调用重定向到我当前的根 URL(仅当它附加了查询字符串时)到具有相同查询字符串的新 URL。例子:

https://www.mydomain.com/?foo=bar重定向到:

https://www.mydomain.com/new_mapping/?foo=bar

而没有查询字符串的请求继续转到https://www.mydomain.com/

提前感谢您的帮助。

4

1 回答 1

1

使用 aRewriteCond匹配非空查询字符串.+并用[QSA]

RewriteEngine On
# If the querystring has at least 1 character
RewriteCond %{QUERY_STRING} ^.+
# Rewrite requests to the root 
RewriteRule ^/?$ new_mapping [L,QSA]

如果您想实际重定向浏览器以显示新 URL,请使用[R=301]. 这[QSA]在技术上是不必要的,因为查询字符串将自动附加以进行重定向。

RewriteRule ^/?$ new_mapping [L,R=301,QSA]
于 2012-12-20T21:53:27.263 回答