2016-02-28 74 views
0

我正在使用mod_rewrite条件/规则,如下所示将URL重定向到www等效项并确保https。RewriteCond和RewriteRule做永久重定向到https:// www。并保留查询字符串

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

这一点,例如,转换example.com/foo/barhttps://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(查询字符串追加)标志,但这没有帮助。

回答

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] 
+0

添加QSA标志对我不起作用。 – jerryxh

+0

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

+0

感谢您的尝试,但仍然无法正常工作。 – jerryxh

相关问题