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

如何全站禁用目录访问仅开放指定目录及修复RewriteRule引发的403错误

403错误触发原因

你根目录重写规则的最后一行正则^([A-Za-z0-9_/]+)$没有排除实际存在的目录请求,且匹配逻辑会把带末尾斜杠的目录路径(比如myFolder/)识别为合法匹配项,重写后得到/myFolder/.html的目标路径。
由于Apache默认禁止访问以.开头的隐藏文件(.html属于这类文件),因此不会返回404,而是直接响应403错误。

修复方案

  1. 修正根目录的.html后缀移除规则,在触发重写前增加文件、目录存在判断,跳过合法的实体资源请求,修改后的第7部分规则如下:
# (7)
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.+)\.html\ HTTP/
RewriteRule ^(.+)\.html$ https://mywebsitenameredacted.com/$1 [R=302]
# 新增以下两条排除条件
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z0-9_/]+)$ /$1.html [L]
  1. 修正myFolder目录下的.htaccess配置,适配Apache 2.4+的新访问控制语法(旧版Allow from all已废弃,未开启兼容模块时不会生效):
Options +Indexes
Require all granted

修改后等待.htaccess规则自动生效即可实现全站禁用目录索引,仅开放myFolder目录的列表权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:48:03