如何通过.htaccess实现主域名跳转HTTPS、其他域名跳转对应子域名
调整后完整.htaccess规则
RewriteEngine On RewriteBase / # 规则1:主域名所有访问强制跳转至https://main.com,兼容http/https、带/不带www的请求 RewriteCond %{HTTP_HOST} ^(www\.)?main\.com$ [NC] RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} ^www\. [NC] RewriteRule ^(.*)$ https://main.com/$1 [R=301,L] # 规则2:domain1.com(含带www前缀的请求)跳转至对应子域名 RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com$ [NC] RewriteRule ^(.*)$ https://domain1.main.com/$1 [R=301,L] # 规则3:domain2.com(含带www前缀的请求)跳转至对应子域名 RewriteCond %{HTTP_HOST} ^(www\.)?domain2\.com$ [NC] RewriteRule ^(.*)$ https://domain2.main.com/$1 [R=301,L] # 原有伪静态规则保留 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L]
规则说明
- 如果你需要主域名保留www前缀,只需将规则1的跳转目标修改为
https://www.main.com/$1即可对齐你原有逻辑。 - 标识
[NC]代表匹配域名时忽略大小写,R=301代表永久重定向,对SEO更友好,测试阶段可临时改为R=302避免缓存影响。 - 规则中
(www\.)?的逻辑可同时兼容带/不带www的源域名跳转,若不需要支持带www的其他域名跳转,删除这部分匹配逻辑即可。 - 后续如果新增更多domainN.com跳转对应子域名的需求,直接复用规则2、3的结构替换域名即可,无需修改其他逻辑。
内容的提问来源于stack exchange,提问作者Sina Said
相关产品推荐
相关产品推荐

