Apache htaccess return 404 代码,即使页面存在而不使用重写 mod:

Apache htaccess return 404 code even if page exists without using rewrite mod:

为了保护我的服务器免受机器人攻击,我想 return 如果某些文件被请求时出现 404 错误页面,即使它们存在但不使用重写 mod。有可能吗?

您可以使用 mod_alias Redirect(或 RedirectMatch)指令。

例如:

Redirect 404 /file1.html
Redirect 404 /file2.html

这实际上不会像在外部 3xx 重定向中那样触发“重定向”。如果请求其中一个 URL(无论该文件是否存在),它会发送规定的 404 响应。

参考:

如果这些 URL 有模式,则使用 RedirectMatch 指令代替,它与正则表达式匹配,而不是使用简单的 prefix-matching。例如,要为对 /secret 子目录(以及其中的所有文件)的所有请求提供 404,则使用以下内容:

RedirectMatch 404 ^/secret($|/)

要自定义 404 响应,请使用 ErrorDocument 指令:

ErrorDocument 404 /error-docs/404.html