我正在尝试在我的Apacheconfiguration中使用虚拟主机来设置子域。 我的设置是:
NameVirtualHost *:80 <VirtualHost *> ServerName www.website.com DocumentRoot "/var/www/html" </VirtualHost> <VirtualHost *> ServerName wiki.website.com DocumentRoot "/var/www/dekiwiki" </VirtualHost>
当我重新启动Apache时,www.website.com和wiki.website.com都转到/ var / www / html中的主网站。
任何帮助赞赏。
在VirtualHost中必须使用与NameVirtualHost中相同的签名:
<VirtualHost *:80>
这里是我如何做我的apache2服务器上的子域…
NameVirtualHost *:80 # Many other hosts... <VirtualHost servers.international-anarchy.com> ServerName servers.international-anarchy.com DocumentRoot "/http/international-anarchy.com/servers/" <Directory "/http/international-anarchy.com/servers/"> Options +Indexes FollowSymLinks AllowOverride None Allow from all Order allow,deny </Directory> </VirtualHost> <VirtualHost status.international-anarchy.com> ServerName status.international-anarchy.com DocumentRoot "/http/international-anarchy.com/status/" <Directory "/http/international-anarchy.com/status/"> Options +Indexes FollowSymLinks AllowOverride All Allow from all Order allow,deny </Directory> </VirtualHost>
这就是我如何让apache2正确地为每个主机渲染子域,并将所有这些设置放在一个虚拟主机文件中,该文件直接从主apacheconfiguration中包含。
我发现了这个问题。 由于虚拟主机被设置为:
NameVirtualHost *:80
我还需要在VirtualHost指令中设置端口。 所以
<VirtualHost *:80>
而不仅仅是
<VirtualHost *:80>
使用'httpd -S'命令显示虚拟主机没有被拾取
在80端口之后是否有任何Listen指令?
如果是这样,您可能需要将<VirtualHost *>更改为<VirtualHost *:80>
您可以指定一个:端口来更改匹配的端口。 如果未指定,则默认为与主服务器的最新“侦听”语句相同的端口 。 您也可以指定:*以匹配该地址上的所有端口