如何通过.htaccess将主域名及子域名均重定向至HTTPS?
HTTPS重定向的.htaccess配置方案
没问题,这是个非常常见的HTTPS重定向需求,我给你两种实用的.htaccess配置方案,你可以根据自己的场景选择:
方案一:通用型重定向(自动适配主/子域名)
这种方案最省心,不管是主域名example.org还是子域名subdomain.example.org,所有HTTP请求都会自动重定向到对应的HTTPS地址:
# 启用URL重写引擎 RewriteEngine On # 检查当前请求是否为非HTTPS协议 RewriteCond %{HTTPS} off # 重定向到HTTPS,保留原域名和请求路径 RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]
方案说明:
%{HTTP_HOST}会自动获取当前请求的完整域名(包括子域名),所以能完美适配你的需求R=301表示永久重定向,对搜索引擎SEO友好;如果只是临时测试,可以改成R=302(临时重定向)[L]表示这是最后一条规则,匹配后不再执行后续规则
方案二:指定域名的精准重定向
如果你只想针对特定的主域名和子域名做重定向(避免意外影响其他可能存在的域名),可以用这种精准匹配的方式:
RewriteEngine On # 处理主域名的HTTP重定向 RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^example\.org$ [NC] RewriteRule ^(.*)$ https://example.org/$1 [L,R=301] # 处理子域名的HTTP重定向 RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^subdomain\.example\.org$ [NC] RewriteRule ^(.*)$ https://subdomain.example.org/$1 [L,R=301]
方案说明:
[NC]是No Case的缩写,表示匹配域名时不区分大小写(比如Example.org或SUBDOMAIN.example.org都能被正确匹配)- 每条规则只针对指定的域名,适合域名数量不多且需要精准控制的场景
重要注意事项
- 确保你的Apache服务器已经开启了
mod_rewrite模块(这是.htaccess重写规则生效的前提) - 把这些规则放在.htaccess文件的最顶部,避免和其他已有的规则冲突
- 确认你的SSL证书已经正确安装,并且覆盖了主域名和子域名(比如通配符证书
*.example.org)
内容的提问来源于stack exchange,提问作者Batara Developer
相关产品推荐
相关产品推荐

