RewriteCond和RewriteRule进行永久重定向到https:// www。并保留查询字符串

时间:2016-02-28 23:32:32

标签: .htaccess redirect mod-rewrite

我正在使用如下所示的mod_rewrite条件/规则将网址重定向到www等效项并确保https。

RewriteCond %{HTTP_HOST} ^example.com [NC]  
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]

例如,这会将example.com/foo/bar转换为https://www.example.com/foo/bar并且正常工作。但是,如果链接包含查询字符串(例如,http://example.com/foo/bar?x=baz&y=qux),则不会追加查询字符串。如何修改上面的RewriteCond / RewriteRule,以便http://example.com/foo/bar?x=baz&y=qux自动转换为 https://www.example.com/foo/bar?x=baz&y=qux附加了查询字符串?我已经尝试在重写规则中添加QSA(查询字符串附加)标志,但这没有帮助。

1 个答案:

答案 0 :(得分:0)

您需要QSA标志(查询字符串追加)

RewriteCond %{HTTP_HOST} ^example.com [NC]  
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC,QSA]

第二个选项

RewriteRule ^(.*)$ https://www.example.com/$1?%{QUERY_STRING} [L,R=301,NC]