有没有更好的方法来设置默认的apache虚拟主机,而不仅仅是选择它找到的第一个配置?
我有一个具有多个域的服务器,其中只有一些配置了httpd,但是被切断的默认虚拟主机例如是aaa.com我真的希望它默认为mmm.com吗?
像停车域这样的东西没有经历为每个设置配置的麻烦 - 然后我可以服务“内容这个域尚未创建”页面?
干杯
您可以创建默认虚拟主机并将其命名为 000-default ,以便首先加载并使用它,除非找到与请求的域匹配的其他vhost . 这是赤裸裸的骨头 000-default :
000-default
<VirtualHost *:80> DocumentRoot /var/www <Directory /var/www > AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
然后你可以在 /var/www 下设置一个PHP文件来创建一个域名停放页面(这是一个非常简单的例子):
/var/www
<?php printf('The domain <b>%s</b> is being parked', htmlentities($_SERVER['HTTP_HOST'])); ?>
第一个 sites-available conf文件是默认的(按字母顺序) . 应该有一个 000-default.conf 文件,如果没有创建它 .
根据自己的喜好编辑这个,然后确保它已启用 a2ensite 000-default.conf . 并重新加载apache2 sudo service apache2 reload .
然后,任何未被其他vhosts捕获的请求都会在此处发出 .
在基于名称的VirtualHost中使用ServerAlias,您只需为每个新域添加一行 .
3 回答
您可以创建默认虚拟主机并将其命名为
000-default
,以便首先加载并使用它,除非找到与请求的域匹配的其他vhost . 这是赤裸裸的骨头000-default
:然后你可以在
/var/www
下设置一个PHP文件来创建一个域名停放页面(这是一个非常简单的例子):第一个 sites-available conf文件是默认的(按字母顺序) . 应该有一个 000-default.conf 文件,如果没有创建它 .
根据自己的喜好编辑这个,然后确保它已启用 a2ensite 000-default.conf . 并重新加载apache2 sudo service apache2 reload .
然后,任何未被其他vhosts捕获的请求都会在此处发出 .
在基于名称的VirtualHost中使用ServerAlias,您只需为每个新域添加一行 .