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

使用.htaccess将指定主机名指向不同根目录的问题

子域名目录映射的.htaccess规则修复方案

问题核心

你的规则仅匹配了根路径(无文件名的请求),且Apache默认会优先访问主目录中实际存在的文件,导致带文件名的请求直接走了主目录的文件,未触发重写规则。

正确的.htaccess规则

替换你现有的规则为以下内容:

RewriteEngine On
RewriteBase /

# 匹配sub.otherdomain.com的所有请求,强制转发到对应子目录
RewriteCond %{HTTP_HOST} ^sub\.otherdomain\.com$ [NC]
RewriteRule ^(.*)$ sub.otherdomain.com/$1 [L]

规则说明

  • ^(.*)$:匹配URL中根路径后的所有内容(包括空路径、文件名、子路径)
  • sub.otherdomain.com/$1:将匹配到的路径转发到子目录下的对应位置,$1是前面捕获的请求路径
  • [L]:终止后续重写规则,确保请求被正确转发后不再被其他规则干扰
  • [NC]:忽略主机名的大小写匹配

验证效果

应用规则后,所有异常情况都会被修正:

  • https://sub.otherdomain.com/test.php → 访问sub.otherdomain.com/test.php,输出正确内容
  • https://sub.otherdomain.com/index.php → 访问sub.otherdomain.com/index.php,输出正确内容
  • https://sub.otherdomain.com/test/test.php → 访问sub.otherdomain.com/test/test.php,输出正确内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:45:39