对 .htaccess 的请求应返回 404 而不是 403
Posted
技术标签:
【中文标题】对 .htaccess 的请求应返回 404 而不是 403【英文标题】:Requests to .htaccess should return 404 instead of 403 【发布时间】:2011-12-18 05:59:22 【问题描述】:这是Is there a way to force apache to return 404 instead of 403? 的后续行动,它建议RedirectMatch
到 404 来完成此操作。
它适用于大多数情况,但是如果我要求:
http://example.com/.htaccess
如果我的 .htaccess
文件中有(或没有)这个,我得到的是 403 而不是 404:
RedirectMatch 404 ^/\.htaccess$
有没有办法从.htaccess
文件本身覆盖默认的 403 - apache 的禁止行为?
【问题讨论】:
这必须在主 Apache 配置文件或您的 vhost 中完成,其中对 .ht* 文件的访问通过 HTTP 403 返回。您可以在此处简单地更改它而无需重写。 @thephpdeveloper:将其添加为答案而不是评论:) 感谢大家的确认。我只在与.ht*
文件处理有关的httpd.conf
文件上看到过这一特定行,所以不敢确认。
@thephpdeveloper: 不,它有not 要在主 apache 配置文件或 vhost 配置中完成。
对于最接近的投票者:我需要这个用于我的应用程序配置的 URL 布局,我不想重新配置整个服务器,因为它是共享主机(a如果这很重要,可以使用 git)。因此,我只会将其视为 SO 上的任何其他 mod_rewrite 配置问题。
【参考方案1】:
就在我发布我的问题之后,我找到了以下解决方案:
为.ht
类型的文件模拟默认服务器配置的<Files>
规则。
允许他们。
将它们重定向到 404。
像这样工作:
<Files ~ "^\.ht">
Order Deny,Allow
Allow from all
Satisfy All
Redirect 404 /
</Files>
【讨论】:
以上是关于对 .htaccess 的请求应返回 404 而不是 403的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess url rewrite在GoDaddy Shared Server上不起作用,返回了Apache 2.4.3 - 404错误
htaccess 命令仅允许来自同一服务器的请求(不指定 IP)
CodeIgniter 使 .htaccess 为 index.php 返回 404
htaccess:尝试 ErrorDocument 时出现 404 Not Found 错误
从 xampp 移动到 apache 2.4.7 后,Laravel 路由返回 404。 mod_rewrite aur htaccess 或缺少 apache 设置?