在 Apache 中,当有人仅在 Web 浏览器中使用 IP 地址时,如何禁用对网站的访问?

Amr*_*ewy 9 centos apache-2.2

我在 CentOS 上使用 apache 网络服务器,我需要禁用人们通过在网络浏览器中使用服务器的 IP 地址访问网站的能力。我想要这样,当有人试图浏览 IP 地址时,他们会收到一条禁止的错误消息。

需要什么配置才能做到这一点?

Mic*_*ton 11

只需设置默认的虚拟主机。有一个注释示例httpd.conf或做一些微不足道的事情,例如:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /var/www/html
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)


Jen*_*y D 7

您可以使用 mod_rewrite 实现此目的(在.htaccess文件中,或在默认服务器上下文中,或在单独的 VirtualHost 中,其中ServerName是主机的 IP 地址):

RewriteEngine On
RewriteCond %{HTTP_HOST} 1.2.3.4 # Replace with your own IP address
RewriteRule .* - [F]
Run Code Online (Sandbox Code Playgroud)

这表示如果 HTTP_HOST 标头与 IP 地址 1.2.3.4 匹配,那么任何请求都应该以403 Forbidden. 任何具有另一个 HTTP_HOST 标头的请求(例如,带有实际域名而不是 IP 地址的请求)不应受到影响。

  • 你在编辑 httpd.conf 后重启 apache 了吗?否则 apache 将不知道新配置。这与 .htaccess 不同,它也是在不重启 apache 的情况下解析的。 (2认同)