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

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

*:80 _default_:80 

在Apacheconfiguration文件中。 这里的文档对我来说是不清楚的,在这里我可以find的唯一的邮件列表对话也没有对这件事情(对我来说是可理解的)进行解释。

我有一堆基于名称的虚拟主机声明像这样:

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

我希望有一个条目可以在没有匹配的时候触发,也就是说,当一个请求没有虚拟主机名或者没有声明的虚拟主机名的时候。 我应该使用*:80还是_default_:80

我认为_default_用于在基于IP的虚拟主机configuration中定义默认虚拟主机。 您正在使用基于名称的虚拟主机,所以这个声明在文档中

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

变得相关。

在基于名称的虚拟主机configuration中,第一个定义的虚拟主机是默认的虚拟主机,如果找不到其他的配对,它将被提供,所以你可以做一些简单的事情

 <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从默认的一切。