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

如何用mod-rewrite与.htaccess分离主域名和子域名并实现跳转

搞定主域名与子域名分离的.htaccess配置方案

嘿,我看你在折腾mod-rewrite和.htaccess来分离主域名和子域名,还遇到了自己搜代码解决不了的问题,结合你给出的文件结构和需求,我给你整理一套靠谱的配置方案:

你的核心需求我再梳理一遍:

  • 访问主域名(不管带不带www)时,直接跳转到其他域名
  • 访问子域名时,要正确加载你mainDomain/文件夹里的内容,或者执行对应的重定向

先看你的文件结构,很清晰:

public_html/
├── .htaccess (主配置文件)
├── index.php (空文件)
└── mainDomain/
    ├── .htaccess (子域名专属配置)
    ├── index.php
    └── public/
        └── .htaccess (public目录配置)

第一步:配置根目录的主.htaccess(public_html/.htaccess)

这个文件是核心,负责分流主域名和子域名的请求,直接复制下面的代码,记得替换成你自己的域名:

# 先开启重写引擎,这是所有规则的前提
RewriteEngine On
RewriteBase /

# 规则1:主域名(含www)直接跳转到目标域名
# 把example.com换成你的主域名,other-domain.com换成要跳转的目标域名
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^(.*)$ https://other-domain.com/$1 [L,R=301]

# 规则2:子域名请求转发到mainDomain目录
# 把sub.example.com换成你的实际子域名
RewriteCond %{HTTP_HOST} ^sub\.example\.com$ [NC]
RewriteRule ^(.*)$ mainDomain/$1 [L]

关键规则解释:

  • *[NC]*:忽略大小写,比如Example.Com也会被匹配到
  • *R=301*:这是永久重定向,对SEO友好,测试的时候可以先改成*R=302*临时重定向,避免浏览器缓存错误规则
  • *[L]*:表示这条规则匹配上之后,就不再执行后面的规则,防止规则冲突
  • 子域名的规则会把所有sub.example.com/xxx的请求,转发到mainDomain/xxx,这样子域名就会加载你mainDomain里的文件,包括它自己的.htaccess

第二步:配置mainDomain里的.htaccess

如果你的子域名需要额外的规则(比如把请求都转发到public/目录),可以在这个文件里加配置,比如:

RewriteEngine On
RewriteBase /mainDomain/

# 把所有非文件、非目录的请求转发到public目录
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ public/$1 [L]

必做的检查事项

别光复制代码,这几个点一定要确认:

  • 你的Apache服务器必须启用了mod_rewrite模块,Ubuntu/Debian可以用sudo a2enmod rewrite开启,然后重启Apache
  • 虚拟主机配置里的AllowOverride必须设为All,否则.htaccess根本不会生效,配置大概是这样:
    <Directory /path/to/your/public_html>
        AllowOverride All
    </Directory>
    
  • 子域名的DNS要正确解析到你的服务器IP,而且虚拟主机要绑定子域名到public_html目录(因为我们已经通过规则转发到mainDomain了)

排查小技巧

  • 如果主域名没跳转:检查HTTP_HOST的正则有没有写错,比如域名后缀、有没有漏写www\.的转义
  • 如果子域名打不开:先确认DNS和虚拟主机绑定没问题,然后看主.htaccess的子域名规则有没有写错
  • 出现循环重定向:大概率是规则冲突,检查*[L]*标志有没有加,或者子域名的规则是不是不小心匹配到了主域名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:23:20