如何完善CPanel附加域名重定向规则,仅允许指定域名访问?
CPanel附加域名重定向解决方案
原规则问题分析
你之前的规则失效是因为RewriteCond里的(.*)$属于错误用法——%{HTTP_HOST}仅包含请求的主机名,不包含路径部分,这个括号无法匹配到任何内容,导致路径无法正确传递到目标地址。
完整重写规则
将以下规则添加到附加域名对应的public_html/addon.com目录下的.htaccess文件(若放在主目录.htaccess也可,子目录规则更精准):
# 重定向子域名 addon.maindomain.com 到 addon.com RewriteCond %{HTTP_HOST} ^addon\.maindomain\.com$ [NC] RewriteRule ^(.*)$ https://addon.com/$1 [R=301,L] # 重定向主域名子路径 maindomain.com/addon.com/ 到 addon.com RewriteCond %{HTTP_HOST} ^maindomain\.com$ [NC] RewriteRule ^addon\.com/(.*)$ https://addon.com/$1 [R=301,L]
规则说明
- 第一条规则:匹配所有主机名为
addon.maindomain.com的请求([NC]忽略大小写),将请求路径完整重定向到addon.com的对应路径。[R=301]是永久重定向,[L]表示执行完这条规则后停止后续匹配。 - 第二条规则:匹配主机为
maindomain.com且路径以addon.com/开头的请求,截取addon.com/之后的路径部分,重定向到addon.com的对应路径。
注意事项
- 测试阶段建议将
R=301改为R=302(临时重定向),避免浏览器缓存永久重定向规则导致调试困难,确认正常后再改回301。 - 确保主机服务商已开启
mod_rewrite模块(CPanel环境默认已开启)。
内容的提问来源于stack exchange,提问作者Victor D.
相关产品推荐
相关产品推荐

