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

如何在.htaccess中实现子域名URL掩码(example.com/app映射)

解决example.com/app路径代理到app.example.com的URL掩码问题

你的原规则存在几个关键问题:

  • %{HTTP_HOST} 仅匹配请求的主机名(比如example.com),不能包含路径,所以原条件完全不生效
  • 域名拼写错误:exmaple.com 应该是 example.com
  • 没有匹配/app路径,也没把后续路径传递到子域名

下面是正确的.htaccess配置,前提是你的Apache服务器已经启用了mod_rewrite和mod_proxy(包括mod_proxy_http)模块:

RewriteEngine On

# 仅处理example.com的请求
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
# 匹配/app开头的路径,将后续内容代理到子域名对应路径
RewriteRule ^app/(.*)$ https://app.example.com/$1 [P,L]

规则解释

  • [NC]:不区分主机名的大小写,兼容Example.com这类大小写混合的请求
  • ^app/(.*)$:匹配所有以/app/开头的路径,$1会捕获/app/之后的所有内容(比如请求example.com/app/page,$1就是page)
  • [P]:启用代理转发,浏览器地址栏会保持example.com/app/xxx,不会跳转到子域名(实现URL掩码)
  • [L]:执行完这条规则后停止后续规则匹配,避免冲突

额外优化

如果需要支持不带尾部斜杠的/app请求(比如example.com/app),可以调整规则为:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^app(/.*)?$ https://app.example.com/$1 [P,L,NE]
  • ^app(/.*)?$:匹配/app或/app/xxx两种格式
  • [NE]:防止特殊字符被转义,确保路径中的参数、特殊符号能正确传递到子域名

注意事项

  1. 必须确认服务器已启用mod_proxy和mod_proxy_http模块,否则[P]标志会失效
  2. 确保当前服务器能正常访问app.example.com,否则代理请求会失败
  3. 如果子域名有自动重定向(比如强制HTTPS、添加尾部斜杠),可能需要额外处理避免地址栏跳转暴露真实域名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:32:21