htaccess [F] 似乎不起作用

htaccess [F] 似乎不起作用

我正在尝试禁止访问任何与 wordpress 相关的内容

下面的方法不起作用并且只触发 404:

RewriteRule ^(.*wp-.*)$ - [L,F]

尽管如果我这样做,一切都很好:

RewriteRule ^(.*wp-.*)$ whatever [L,R]

编辑:通过检查http://htaccess.madewithlove.be/没有显示任何问题。

编辑2:我看不出这怎么会是mod_rewrite教程的重复,显然我已经检查过了但不幸的是没有找到解决方案。

编辑 3:我能够确认它可以在我的本地虚拟机和其他暂存服务器上运行,有没有办法在生产服务器上对其进行调试?

编辑 4:评论中提供了修复,清楚地表明解决方案未在“重复”帖子中提及,但与默认 403 错误页面丢失有关

答案1

ErrorDocument如果在服务器配置中定义了一个,该配置会覆盖该特定错误原本会返回的 HTTP 状态,则会发生这种情况。在这种情况下,ErrorDocument可能为 403 状态定义了一个,但明确返回 404 HTTP 状态代码。

通常,您会在服务器配置中从源头解决此问题,但是,您可以将错误文档重置为默认值(或设置您自己的自定义ErrorDocument.htaccess。例如:

ErrorDocument 403 default

我在一些共享服务器上看到了类似的(明显的)配置错误,其中覆盖.htaccess是唯一的选择。

...它尝试获取该403.shtml页面,但是由于该页面不存在,因此导致 404。

这听起来似乎很有道理,但实际上它并不是“正常”的。通常,如果定义的自定义错误文档不存在,Apache 会使用“系统生成的”错误文档进行响应,并且仍然设置正确的 HTTP 状态代码。

(“系统生成”错误文档是轻微地与您通常看到的“默认”错误文档不同。)

相关内容