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

.htaccess主域名重定向至子目录后无法访问文件问题

解决主域名指向子目录同时保留其他目录访问的问题

问题出在访问主域名example.com时,请求的是根目录public_html,这个目录实际存在,所以原规则里的RewriteCond %{REQUEST_FILENAME} !-d条件不满足,规则不会触发,而根目录没有默认索引文件(比如index.html/index.php),服务器就返回403 Forbidden。

修改你的.htaccess规则,单独处理根目录的请求,同时保留对现有文件/目录的访问:

RewriteEngine On

# 单独处理主域名根路径的请求,直接指向subfolder的index.php
RewriteRule ^$ /subfolder/index.php [L]

# 处理非文件、非目录且未指向subfolder的请求,转发到subfolder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteRule (.*) /subfolder/$1 [L]

规则说明:

  • 第一条规则RewriteRule ^$ /subfolder/index.php [L]专门匹配主域名的根请求(空路径),直接跳转到subfolder下的index.php,[L]表示这是最后一条规则,匹配后不再往下执行。
  • 后面的规则保留原逻辑,但把RewriteCond %{REQUEST_URI} !subfolder/改成!^/subfolder/,用^锚定开头,避免误匹配包含subfolder字符串的其他路径,更严谨。

这样修改后:

  • 访问example.com会直接加载subfolder/index.php
  • 访问example.com/anotherfolder/image.png这类真实存在的文件/目录,规则不会触发,能正常访问
  • 访问其他不存在的路径(比如example.com/test),会转发到subfolder/test,由subfolder里的程序处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:22:05