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

无尾部斜杠访问子目录且缺失index.html时调用index.php的.htaccess配置问题咨询

解决子目录无斜杠访问及index.php fallback问题

让我们一步步搞定这个配置问题:

首先,你的根目录.htaccess目前只处理了index.html的加载逻辑,完全没考虑index.php的场景,这就是无法调用index.php的核心原因。另外,我们还要确保根目录的规则不会干扰/blog/下WordPress的独立配置——毕竟它有自己的.htaccess在处理请求。

修改根目录的.htaccess配置

替换根目录下的现有配置为以下内容:

RewriteEngine on
ErrorDocument 404 /error/error404.html
DirectorySlash Off

# 排除/blog/开头的请求,交给它自身的.htaccess处理
RewriteRule ^blog/ - [L]

# 优先检查并加载index.html(如果存在)
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}/index.html -f
RewriteRule ^(.*)$ /$1/index.html [L]

# 若index.html不存在,检查并加载index.php(如果存在)
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}/index.php -f
RewriteRule ^(.*)$ /$1/index.php [L]

配置说明

  • RewriteRule ^blog/ - [L]:这条规则是关键——任何以/blog/开头的请求,直接停止根目录后续规则的处理,完全交给WordPress的独立配置去处理,避免规则冲突。
  • DirectorySlash Off:保留你原本的配置,确保访问子目录时不会自动添加尾部斜杠,满足example.com/blog而非example.com/blog/的需求。
  • index.html优先逻辑:先检查请求对应的子目录下是否存在index.html,如果存在就加载它;如果不存在,才会进入下一条规则。
  • index.php fallback逻辑:当index.html不存在时,检查是否存在index.php,如果存在则加载它,完美匹配你的需求。

/blog/.htaccess无需修改

WordPress自动生成的配置已经能正确处理自身的请求,加上根目录规则已经排除了/blog/的请求,两者不会互相干扰,可以保持原样。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:48:11