我尝试在同一个IP上创建两个网站。我已经了解我的研究,如果我使用域名和子域名,就有可能。
现在我在ubuntu上的apache2的默认配置文件中创建了这个:
NameVirtualHost prem2.trixia.dk:80
NameVirtualHost srv6.trixia.dk:80
<VirtualHost prem2.trixia.dk:80>
ServerName prem2.trixia.dk
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost srv6.trixia.dk:80>
ServerName srv6.trixia.dk
ServerAdmin webmaster@localhost
DocumentRoot /var/www/host523.trixia.dk
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我想做的是,如果你去网站srv6.trixia.dk,它会转到文件夹/var/www/host523.trixia.dk
,如果是它的prem2.trixia.dk,它只是默认网页。
现在,如果我去srv6.trixia.dk,它会转到/var/www/html
。
我做错了什么?
答案 0 :(得分:0)
我假设您使用的是Apache 2.2或更低版本,在我推荐的2.4 NameVirtualHost中。
建议您使用可选端口作为参数将IP地址放入NameVirtualHost,如下所示:
NameVirtualHost 123.123.123.123:80
在我的服务器上,我写的是这样的:
NameVirtualHost *:80
对Apache说,它可以在所有服务器ip-adresses上安装VirtualHost。因此请将NameVirtualHost <servername>:80
替换为NameVirtualHost <ip-address>:80
或NameVirtualHost *:80
接下来我会将VirtualHost块重写为:
<VirtualHost *>
ServerName prem2.trixia.dk
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *>
ServerName srv6.trixia.dk
ServerAdmin webmaster@localhost
DocumentRoot /var/www/host523.trixia.dk
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
即替换每个<VirtuaHost>
部分。
我认为您所犯的错误是两个NameVirtualHost
,这导致Apache错误地解释了您的虚拟主机。
这可能是一个很好的页面供您阅读:http://httpd.apache.org/docs/2.2/vhosts/name-based.html