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

如何配置使主域名访问时显示子域名站点内容?

嘿,这两个问题本质上都是主域名(apex domain)指向子域名内容的需求,我给你整理几种实用的方案,你可以根据自己的场景(比如要不要保留主域名URL、SEO需求)来选:

一、让example.com显示b.example.com的内容

方案1:HTTP 301/302 重定向(最简单,适合SEO或不需要保留主域名URL的场景)

这个方案就是直接把访问example.com的请求“跳转”到b.example.com,用户浏览器的地址栏会变成子域名。配置方法取决于你的服务器软件:

  • Nginx:在example.com的站点配置块里添加以下代码:
server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    # 301是永久重定向(利于SEO),换成302就是临时重定向
    return 301 $scheme://b.example.com$request_uri;
}
  • Apache:在example.com的虚拟主机配置文件或者站点根目录的.htaccess里添加:
RewriteEngine On
# 匹配访问example.com的请求
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
# 重定向到b.example.com,保留原请求路径
RewriteRule ^(.*)$ https://b.example.com/$1 [R=301,L]

方案2:反向代理(保留主域名URL,用户无感知跳转)

如果你想让用户访问example.com时,地址栏始终显示example.com,但实际内容来自b.example.com,就用反向代理——相当于example.com的服务器当“中转站”,把用户的请求转发给b.example.com,再把内容返回给用户。

  • Nginx:配置example.com的server块:
server {
    listen 80;
    listen [::]:80;
    server_name example.com;

    location / {
        # 这里填b.example.com的域名或直接填它的IP地址
        proxy_pass http://b.example.com;
        # 传递必要的请求头,避免子域名服务器识别异常
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  • Apache:需要先启用mod_proxy和mod_proxy_http模块,然后在虚拟主机配置里加:
<VirtualHost *:80>
    ServerName example.com
    # 把所有请求转发给b.example.com
    ProxyPass / http://b.example.com/
    # 修正响应头里的域名,避免跳转异常
    ProxyPassReverse / http://b.example.com/
</VirtualHost>

注意:要确保example.com的服务器能正常访问b.example.com的服务器哦。

方案3:DNS特殊记录(无需服务器配置,适合用CDN/高级DNS服务商的场景)

根据DNS规范,主域名(比如example.com)不能直接设置CNAME记录,但很多主流DNS服务商(比如Cloudflare、AWS Route 53)支持ANAME/ALIAS记录或者CNAME flattening功能。你可以给example.com设置ANAME/ALIAS记录指向b.example.com,这样DNS会自动解析到b.example.com的IP地址,相当于让主域名和子域名指向同一台服务器。这种方法不需要修改任何服务器配置,直接在DNS后台操作即可。


二、让test.com打开b.test.com的文件

这个需求和上面完全一致,只是域名换成了test.com和b.test.com,直接套用上面的三种方案就行:

  1. 重定向:把test.com的请求301/302跳转到b.test.com,替换对应域名即可;
  2. 反向代理:在test.com的服务器上配置反向代理指向b.test.com;
  3. DNS特殊记录:给test.com设置ANAME/ALIAS记录指向b.test.com。

额外小提醒:如果用反向代理,要是b.test.com的静态资源用了带域名的绝对路径(比如https://b.test.com/css/style.css),用户访问test.com时会正常加载这些资源,一般不需要额外处理;如果是相对路径,那就更没问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:28:33