Apache2 中的 *:80 和 _default_:80 有什么区别?

Apache2 中的 *:80 和 _default_:80 有什么区别?

我试图理解以下两个术语之间的区别:

*:80
_default_:80

在 Apache 配置文件中。文档这里对我来说并不清楚,而且我能找到的唯一邮件列表对话这里也没有对此事提供任何(对我而言可以理解的)启示。

我有一堆基于名称的虚拟主机,声明如下:

<VirtualHost *:80>
    ServerName example.com
    ...

并且我希望有一个条目在以上都不匹配时触发,即当请求没有虚拟主机名或没有声明虚拟主机名时。我应该使用*:80_default_:80吗?

答案1

我认为这_default_是用于在基于 IP 的虚拟主机配置中定义默认虚拟主机。您正在使用基于名称的虚拟主机,因此文档中的此语句

默认虚拟主机从不提供发送到基于名称的虚拟主机使用的地址/端口的请求。

变得相关。

在基于名称的虚拟主机配置中,定义的第一个虚拟主机是默认虚拟主机,如果没有找到其他匹配项,它将被提供服务,因此您可以做一些简单的事情,例如

<VirtualHost *:80>
    ServerName default
    DocumentRoot /var/www/default
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example.com
</VirtualHost>

<VirtualHost *:80>
    ServerName sub.example.com
    DocumentRoot /var/www/sub.example.com
</VirtualHost>

将按照您的需要进行操作并提供除 example.com 和 sub.example.com 之外的默认服务。

相关内容