You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.htaccess配置SSL重定向时子域错误跳转的修复方法咨询

修复子域名HTTPS重定向错误的.htaccess配置方案

你的问题出在原代码里硬编码了固定域名https://www.mywebsite.com/$1——不管用户请求的是主域名还是子域名,这条规则都会把所有请求强制跳转到这个固定地址,子域名自然就被当成路径拼到主域名后面了。

要解决这个问题,我们只需要用服务器的动态变量来保留请求的原始域名(包括子域名),修改后的代码如下:

RewriteEngine On
# 匹配所有非HTTPS的请求
RewriteCond %{HTTPS} off
# 动态使用请求的完整主机名进行重定向
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

代码说明:

  • 替换RewriteCond %{SERVER_PORT} 80为RewriteCond %{HTTPS} off:这个条件直接判断当前请求是否启用HTTPS,比判断端口号更可靠——毕竟有些服务器会用非标准端口(比如8443)运行HTTPS,用这个条件兼容性更强。
  • 用%{HTTP_HOST}代替硬编码域名:这个变量会自动获取用户请求的完整主机名(比如subdomain.mywebsite.com或者www.mywebsite.com),这样重定向后就能完美保留原有的子域名结构。
  • [R=301,L]:R=301表示永久重定向,有利于搜索引擎收录;如果只是临时测试,可以换成R=302(临时重定向),确认没问题后再改回301。L表示这是最后一条规则,匹配后不再执行后续规则。

额外注意事项:

  • 确保你的Apache服务器已经启用了mod_rewrite模块,同时.htaccess文件有足够的权限(一般设置为644即可)。
  • 如果你的主域名需要强制跳转到www版本,而子域名不需要,可以在上面的规则基础上再添加一条针对主域名的规则,但如果只是要所有域名(包括子域名)都跳转到对应的HTTPS版本,上面的代码就完全够用了。

内容的提问来源于stack exchange,提问作者Lakhon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:09:11