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

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

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

我的问题是,有没有办法让除少数特定 IP 地址之外的所有访问尝试都返回 404 错误代码?

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

答案1

好了,结束吧:

<Location /admin>
     Order deny,allow
     Allow from 10.0.0.1
     Allow from 192.168.1.1
     Deny from all
</Location>

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

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

另请参阅 mod_access 文档。

不管怎样,随着时间的推移,我越来越发现将网站管理员放在完全独立的虚拟主机上很有价值。

答案2

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

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

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

答案3

检查配置指南中的“允许来自”属性

答案4

以下litespeed小变化mod_rewrite对我有用:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^1.2.3.4 [OR]
RewriteCond %{REMOTE_ADDR} !^1.2.3.4
RewriteRule (.*) - [R=404,L]

相关内容