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

如何用.htaccess动态将根URL映射到hosting目录下的百余个页面?

解决方案

直接用一条带条件判断的Rewrite规则就能批量实现需求,不用逐个编写规则:

RewriteEngine On

# 当请求的是根目录下的PHP文件,且hosting目录中存在对应文件时,内部重写
RewriteCond %{DOCUMENT_ROOT}/hosting/%{REQUEST_URI} -f
RewriteRule ^([^/]+)\.php$ /hosting/$1.php [L]

规则说明:

  • RewriteEngine On:开启URL重写功能,是所有重写规则的基础前提。
  • RewriteCond %{DOCUMENT_ROOT}/hosting/%{REQUEST_URI} -f:先判断hosting目录下是否存在当前请求的PHP文件(-f用于检查目标路径是否为真实存在的文件),避免请求不存在的文件时也触发重写,导致不必要的错误。
  • RewriteRule ^([^/]+)\.php$ /hosting/$1.php [L]:匹配根目录下所有以.php结尾的文件([^/]+确保只匹配根目录的文件,不会影响子目录请求),然后内部重写到hosting目录下对应的PHP文件;[L]表示这是最后一条规则,匹配成功后不再处理后续规则。

关于之前方案不适用的原因:

你尝试的方案是用于隐藏URL中的目录路径的反向需求,而你的需求是将根目录的PHP请求映射到子目录,方向完全相反,所以直接套用会出现错误。上面的规则刚好适配你的场景,既批量处理所有PHP文件,又做了存在性校验,避免无效重写。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:40:40