无论输入的地址如何,Apache2 都会提供页面服务

无论输入的地址如何,Apache2 都会提供页面服务

如何配置 apache2 webserver 仅在请求包含有效主机名/域(以下之一)时才提供页面虚拟主机)?
我在笔记本电脑上做了一些实验主办方我在文件中输入了我的服务器 IP 和一些虚构的域名(这个域名在现实中并不存在,甚至在我的某个虚拟主机文件即 abfgffd.com)。令我惊讶的是,主 Apache 服务器页面显示的不是错误消息,而是该页面不存在。

因此,如果有人输入任何主机名(由主办方文件到我的IP)我的主网页就会出现。奇怪:|

我该如何预防?我是否错过了一些重要的 Apache 配置选项?

答案1

给定 IP 地址的第一个定义的虚拟主机是该 IP 的默认虚拟主机。因此,如果您在实际虚拟主机前放置类似以下内容,它将为不存在的虚拟主机提供请求:

<VirtualHost *:80>
    ServerName some.random.host.name
    DocumentRoot /var/www/empty

    <Directory /var/www/empty>
        Order allow,deny
        Deny from all
    </Directory>
</VirtualHost>

答案2

您需要配置 Apache 才能使用虚拟主机

编辑:也许我误解了。如果您有默认主机(在 httpd.conf、apache2.conf、sites-available/default 等中定义),那么 apache 将对任何与虚拟主机不匹配的域使用该主机(在块中使用 ServerName 或 ServerAlias 定义<VirtualHost>)。

相关内容