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

如何在Apache .htaccess中配置规则隐藏指定文件夹并返回自定义404?

实现Apache禁止访问指定文件夹并显示自定义404页面

需求:在.htaccess中添加规则,让Apache在处理文件夹请求前判断是否为禁止访问的文件夹,若是则返回自定义404页面。目标是隐藏test文件夹下的所有子目录(例如http://www.example.com/test/subfolder)。

用户尝试的代码:

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/test/.+
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ 404.php  [L]

修正后的实现方案

RewriteEngine On

# 禁止访问test目录下的所有子目录,返回自定义404页面
RewriteCond %{REQUEST_URI} ^/test/[^/]+/?$
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ /404.php [L,R=404]

代码说明

  • 第一条RewriteCond:精确匹配以/test/开头、后续包含至少一个非斜杠字符(确保是子目录)、结尾可选斜杠的请求URI,避免误匹配文件请求。
  • 第二条RewriteCond:验证请求对应的路径在服务器上确实是一个存在的目录。
  • RewriteRule中的R=404会将HTTP状态码设置为标准404错误状态,同时跳转到自定义的404.php页面;L标记表示这是最后一条规则,停止后续重写规则的处理。

扩展调整

  • 如果需要同时禁止访问test目录本身,可将第一条匹配规则修改为^/test/?$。
  • 如果要禁止test目录下所有层级的子目录,可将匹配规则调整为^/test/.*/?$。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 08:26:05