首页 文章

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

提问于
浏览
0

我正在使用如下所示的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 ),则不会追加查询字符串 . 如何修改上面的RewriteCond / RewriteRule,以便 http://example.com/foo/bar?x=baz&y=qux 自动转换为 https://www.example.com/foo/bar?x=baz&y=qux 并附加查询字符串?我已经尝试在重写规则中添加QSA(查询字符串附加)标志,这没有帮助 .

1 回答

  • 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]
    

相关问题