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

修改.htaccess文件重写规则:解决子目录访问被跳转至404错误页的问题

解决子目录访问跳转到404错误页的问题

嘿,我来帮你搞定这个问题!首先咱们先搞清楚为什么访问/sub_folder会跳转到错误页:

你的.htaccess里有两个关键设置导致了这个情况:

  1. Options -Indexes:这个规则禁止了服务器显示目录列表,也就是说如果某个目录里没有默认的索引文件(比如index.php、index.html),服务器不会列出目录内容,而是返回404错误。
  2. 全局的ErrorDocument 404 http://example.com/content/error.php:一旦触发404错误,就会跳转到这个指定的错误页面。

所以当你访问/sub_folder时,因为目录里没有默认索引文件,加上禁止了目录列表,服务器就返回404,然后触发了跳转。

接下来给你几个可行的解决方案,你可以根据需求选:

方案一:添加默认索引文件(最推荐)

这是最简单也最安全的做法,直接在sub_folder目录里新建一个默认索引文件,比如index.php或者index.html。内容可以是目录的导航页,或者直接显示你想展示的内容。这样访问/sub_folder时,服务器会自动加载这个文件,不会触发404错误。

方案二:用Rewrite规则排除子目录

如果不想添加索引文件,你可以在.htaccess的Rewrite规则部分,添加一条规则让服务器正常处理sub_folder的请求。把这段代码放在RewriteEngine On之后、其他Rewrite规则的后面:

# 允许正常访问sub_folder目录及其所有内容
RewriteRule ^sub_folder/ - [L]

这条规则的意思是:任何以sub_folder/开头的请求,直接停止后续规则的处理,让服务器按照默认逻辑去加载这个目录的内容。

方案三:允许该子目录的目录列表(不推荐,有安全风险)

如果你想让服务器列出sub_folder里的文件,可以针对这个目录修改Options设置。不过要注意,目录列表可能会暴露敏感文件,所以不建议在生产环境使用。在.htaccess里添加:

<FilesMatch "^sub_folder/*">
    Options +Indexes
</FilesMatch>

如果你的服务器不支持FilesMatch,也可以用:

RewriteRule ^sub_folder/ - [L,NC]
Options +Indexes

最后记得检查一下sub_folder目录的权限,确保服务器有读取这个目录和里面文件的权限,避免因为权限问题导致的访问错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 08:24:07