我试图理解以下两个术语之间的区别:
*: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从默认的一切。