【问题标题】:Set directory index to .html file in Apache2在 Apache2 中将目录索引设置为 .html 文件
【发布时间】:2011-09-05 07:00:57
【问题描述】:

我有一个安装了 Apache2 的 Debian 网络服务器,需要在一个目录中将 DirectoryIndex 设置为 .html 文件(正是这个名称 - .html)。但是当我尝试从浏览器打开页面时,它会发送 403 错误。 我已经更改了 apache2.conf(设置为允许 .ht 文件),我将 .htacess 文件放在目录中并在其中设置:

DirectoryIndex .html index.php index.html
AllowOverride All
Order Deny,Allow
Allow from all

但它仍然无法正常工作并显示 403 错误。我做错了什么,忘记做什么?

【问题讨论】:

  • 您确认文件夹的读取权限了吗?
  • 是的,我什至尝试将其设置为 777
  • @Evgeniy Skulditsky:我想你也可以检查一下你的文件夹的所有者和组。
  • 我首先检查了文件夹的所有者和组)我认为在其他地方还有关于 .ht 文件的附加规则
  • 您的 apache 日志文件中是否收到任何错误消息?如果没有,您可能想尝试添加/更改 LogLevel 以更好地了解 Apache 为何给您 403。

标签: apache .htaccess http-status-code-403


【解决方案1】:

正确答案是:

<FilesMatch "^\.html">
        Order deny,allow
</FilesMatch>

DirectoryIndex .html

【讨论】:

  • 谢谢!你能解释一下这种行为吗?
  • 是的,当然。达米安是对的。某处有一条规则阻止此类文件。我们正在释放它们。这里的关键是 Order 指令。 order deny,allow 表示默认允许,除非有拒绝规则。
  • 但是有一个小问题:host.com/dir/ - 工作,但 host.com/dir/.html - 没有
  • 在 nginx 配置中有附加规则禁止访问 .ht 文件
【解决方案2】:

听起来您的 apache 文件中某处有一条规则拒绝访问以 . 开头的文件。这通常是一件好事,因为许多敏感文件以点开头(即:.htaccess、.svn、.git、.htpasswd 等)。

您也许可以通过以下方式解决此问题:

<FilesMatch "^\.html">
 Order allow,deny
 Allow from all
</Files>

免责声明:这似乎是一种黑客行为。我不知道你想做什么,但可能有一种更简洁、更不容易出错的方法。

【讨论】:

  • 谢谢你的好回答,但我已经在 apache2.conf 中做到了: Order allow,deny Allow from all 我也试过你的代码,但它仍然是 403 错误。
猜你喜欢
  • 1970-01-01
  • 2021-12-19
  • 2015-11-04
  • 2013-10-08
  • 1970-01-01
  • 2016-03-27
  • 1970-01-01
  • 2015-03-01
  • 2021-04-23
相关资源
最近更新 更多