为未经授权的尝试返回 404 代码

Wil*_*lly 5 .htaccess apache-2.2

我的 Web 服务器 (http://test.com/admin) 上有一个 admin 目录,我不希望未经授权的各方访问此 /admin/ 目录,而是希望为所有未经授权的访问返回 404 错误代码。

我的问题是,除了少数特定 IP 地址之外,是否有任何方法可以为所有访问尝试返回 404 错误代码?

我的 Web 服务器是 Linux (plesk) 上的 Apache。

小智 15

您可以使用 mod_rewrite 来做到这一点。

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !=10.0.0.1 [OR]
RewriteCond %{REMOTE_ADDR} !=10.0.0.1
RewriteRule ^admin($|/) - [L,R=404]
Run Code Online (Sandbox Code Playgroud)

请注意,该R=404标志至少需要 Apache 2.1.1。


cha*_*aos 5

好吧,关闭:

<Location /admin>
     Order deny,allow
     Allow from 10.0.0.1
     Allow from 192.168.1.1
     Deny from all
</Location>
Run Code Online (Sandbox Code Playgroud)

虽然这实际上是返回 403 Forbidden,而不是 404 Not Found,你知道,这是正确的。

如果您将它放在 admin 目录中的 .htaccess 中,则不需要 Location 容器。该示例是为服务器或虚拟主机配置文件编写的。

另请参阅 mod_access 文档。

对于它的价值,随着时间的流逝,我越来越发现将站点管理员放在一个完全独立的虚拟主机上的价值。