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

Apache反向代理跳转时如何禁用子域名显示

Apache反向代理跳转时如何禁用子域名显示

看起来你已经在主域名(运行Next.js的服务器)上搭好了Apache反向代理,想把主域名的/blog路径映射到子域名的博客服务,但跳转时总会暴露子域名对吧?我来帮你把配置调整好解决这个问题。

先理下你的场景:主域名跑Next.js,博客因为安全原因部署在单独服务器的子域名上,现在用Apache的ProxyPass把主域名的/blog路径代理过去,但跳转时子域名会跑出来,这大概率是ProxyPassReverse配置不完整或者没处理响应头导致的。

给你修正后的完整http-vhost.conf配置片段,重点看代理相关的部分:

<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    UserDir disabled
    ServerName example.com
    ServerAlias example.com
    ScriptAlias /cgi-bin/ /var/www/cgi-bin/
    CustomLog /var/log/httpd/homedir.log homedir
    CustomLog /var/log/httpd/access_log combined
    ErrorLog /var/log/httpd/error_log
    ProxyPreserveHost On

    # 代理主域名的/blog路径到子域名的博客服务
    ProxyPass "/blog" "https://blog.example.com/blog"
    # 关键:完整配置ProxyPassReverse,让Apache重写响应头里的子域名
    ProxyPassReverse "/blog" "https://blog.example.com/blog"
    # 处理Cookie,避免子域名信息泄露到主域名会话中
    ProxyPassReverseCookieDomain blog.example.com example.com
    ProxyPassReverseCookiePath "/blog" "/blog"
</VirtualHost>

我给你划几个重点:

  • 你的原配置里ProxyPassReverse没写完,必须和ProxyPass的目标地址完全匹配,这样Apache才能自动把响应里的Location头(比如跳转链接)从子域名路径替换成主域名的/blog路径,就不会暴露子域名了。
  • ProxyPassReverseCookieDomain:把博客服务在子域名下设置的Cookie,域名替换为主域名,既保证Cookie能正常使用,又不会带出子域名信息。
  • ProxyPassReverseCookiePath:同步Cookie的路径规则,避免会话混乱。

另外还要注意:你的博客服务所在的子域名服务器,绝对不能有强制跳转到子域名本身的配置(比如Redirect或者RewriteRule),不然会直接绕过Apache的反向代理重写,又把子域名暴露出来了。

备注:内容来源于stack exchange,提问作者high developer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 11:08:06