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

如何在.htaccess中配置重写规则实现子域名隐藏

原有配置错误原因

  • %{HTTP_HOST} 变量仅包含请求的域名信息,不会携带协议、请求路径,你写的匹配规则^https://blog\.example\.com\/blog完全无法命中目标请求
  • 重写规则中$1已经捕获了完整的请求路径,额外拼接/blog前缀会导致跳转后路径重复,出现/blog/blog/xxx的错误路径

正确配置

将以下配置写入blog.example.com站点的虚拟主机配置文件,或站点根目录下的.htaccess文件即可实现你要的地址栏跳转隐藏子域名的效果:

<IfModule mod_rewrite.c>
  RewriteEngine On
  # 匹配所有访问blog.example.com域名的请求
  RewriteCond %{HTTP_HOST} ^blog\.example\.com$ [NC]
  # 匹配/blog开头的路径,保持原协议跳转至主域名的对应路径
  RewriteRule ^blog/(.*)$ %{REQUEST_SCHEME}://example.com/blog/$1 [R=301,L]
</IfModule>

注意事项

  • 配置修改后需重启Apache服务生效,调试阶段建议先将R=301改为R=302临时跳转,避免浏览器缓存旧的301规则影响调试
  • 需确保example.com站点的/blog路径已部署对应站点内容,跳转后才能正常访问
  • 若你需要地址栏不变、仅内部代理拉取子域名内容,可以使用P标记配合mod_proxy模块,规则改为:
    RewriteRule ^blog/(.*)$ http://blog.example.com/blog/$1 [P,L]
    
    该配置需放在example.com站点的配置中使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:54:03