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

Apache 2.4 mod_rewrite配置:目录根路径需等效index.html访问

Apache 2.4 .htaccess 配置解决方案

需求回顾

位于somedir目录下的.htaccess,需实现:

  • 拒绝访问目录内所有内容
  • 仅允许访问index.html和403.html
  • 访问http://.../somedir或http://.../somedir/时,效果等同于直接访问index.html

原配置问题

原配置未处理目录本身的请求(即不带文件名的访问),且规则条件未精确匹配目标文件,可能导致误匹配。

修正后的配置

RewriteEngine On

# 处理目录请求:访问somedir或somedir/时,内部重写到index.html
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ index.html [L]

# 放行允许访问的文件:index.html和403.html
RewriteCond %{REQUEST_URI} /index\.html$ [NC,OR]
RewriteCond %{REQUEST_URI} /403\.html$ [NC]
RewriteRule ^ - [L]

# 所有其他请求重定向到403.html
RewriteRule ^ 403.html [L]

配置说明

  1. 目录请求处理:%{REQUEST_FILENAME} -d判断当前请求是目录,此时内部重写到index.html,后续规则会识别这个请求并放行。
  2. 精确放行文件:用/index\.html$确保仅匹配以index.html结尾的请求,避免误匹配类似xxxindex.html的文件;[NC]表示忽略大小写。
  3. 默认拒绝规则:所有未被前面规则放行的请求,都重定向到403.html。

额外说明

  • 无需使用DirectoryIndexRedirect,该指令作用是将目录请求重定向到指定文件的URL(外部跳转),而我们需要的是内部重写(地址栏不变)。
  • 原配置中多余的RewriteCond %{REQUEST_URI} "^.*$"可以删除,该条件恒为真,没有实际筛选作用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:59:55