修改htaccess重定向规则 保留主域名跳转同时允许子域名正常访问
问题原因
原重定向规则未限制生效域名范围,所有绑定到当前站点配置的域名(包括子域名dev.example.com)都会触发重定向逻辑,因此访问子域名时会被错误跳转至主域名的/main路径下。
调整后规则
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] RewriteCond %{REQUEST_URI} !/(logos|press|main)/ [NC] RewriteRule ^(.*)$ /main/$1 [R=301,L]
规则说明
- 新增的
%{HTTP_HOST}匹配条件限定规则仅对主域名www.example.com生效,子域名dev.example.com不会命中该规则,可正常访问 - 主域名原有重定向逻辑完全保留:访问路径不属于
/logos、/press、/main三个允许目录时,仍会自动跳转到对应/main/路径 [NC]标志表示匹配时忽略大小写,与原有规则行为保持一致- 调整规则后请先清理浏览器缓存再测试,避免之前的301永久重定向本地缓存影响验证结果
内容的提问来源于stack exchange,提问作者ne0nlight
相关产品推荐
相关产品推荐

