我正在使用如下所示的mod_rewrite条件/规则将URL重定向到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
),则不会附加查询字符串。如何修改上面的重写Cond/RewriteRule,以便http://example.com/foo/bar?x=baz&y=qux
自动转换为 附加了查询字符串https://www.example.com/foo/bar?x=baz&y=qux
?我尝试在重写规则中添加 QSA(查询字符串追加)标志,但这没有帮助。
您需要 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]