如何修改.htaccess实现域名及子路径HTTP转HTTPS跳转?
解决HTTPS强制跳转及子页面路径保留问题
原规则的核心问题是未保留请求的子页面路径和查询参数,导致跳转后所有请求都指向主域名根目录。以下是修正后的完整规则:
RewriteEngine On RewriteCond %{HTTPS} !on [OR] RewriteCond %{HTTP_HOST} ^www\.example\.com$ RewriteRule (.*) https://example.com/$1 [L,R=301,QSA]
关键修改说明
/$1:将RewriteRule捕获到的完整请求路径(即(.*)匹配到的子页面部分)追加到目标域名后,确保http://example.com/other-web-pages能正确跳转到https://example.com/other-web-pagesQSA标志:全称Query String Append,用于保留原请求的查询参数(比如http://example.com/page?id=123跳转后会保留?id=123)[L,R=301]:L表示执行完这条规则后不再处理后续规则;R=301表示永久重定向,对搜索引擎优化(SEO)更友好
注意事项
- 确认服务器已启用
mod_rewrite模块 - 测试阶段建议先用
R=302临时重定向,避免浏览器缓存301规则导致调试困难,确认正常后再改回R=301 - 替换规则中的
example.com为你实际使用的域名
内容的提问来源于stack exchange,提问作者Jay Mosk
相关产品推荐
相关产品推荐

