我有两个站点,它们都位于 /var/www/ 目录中。
一个在……
/var/www/doamin1.com/public_html
另一个在......
/var/www/doamin2.com/public_html
目录被分配给 www-data:www-data 用户和组。
我已经设置了conf文件,它们是
doamin1.com.conf
和
doamin2.com.conf
它们看起来像这样...
<VirtualHost *:80>
<Directory /var/www/domain1.com/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ServerName wildcard.domain1.com
ServerAlias *.domain1.com
ServerAdmin [email protected]
DocumentRoot /var/www/domain1.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
#vim: syntax=apache ts=4 sw=4 sts=4 sr noet
<VirtualHost *:80>
<Directory /var/www/domain2.com/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ServerName wildcard.domain2.com
ServerAlias *.domain2.com
ServerAdmin [email protected]
DocumentRoot /var/www/domain2.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
#vim: syntax=apache ts=4 sw=4 sts=4 sr noet
将域名添加到主机文件/etc/hosts
a2dissite 000-default.conf
a2ensite domain1.com.conf
a2ensite domain2.com.conf
service apache2 reload
service apache2 restart
并且两个域仍然指向同一个域,我甚至重新启动了服务器并删除了通配符设置......
ServerName domain1.com
ServerAlias domain1.com
ServerName domain2.com
ServerAlias domain2.com
并且它们无法正确定向。两个域名都归自己所有,DNS 也指向正确的位置。我所做的一切仍然导致它们都重定向到同一个目录。
我在 sites-enabled 中提供了配置文件链接,每个站点都有 conf 文件,但仍然不起作用。我迷路了。
我在这里遗漏了什么?
答案1
我发现对于每个虚拟主机配置...
/etc/apache2/sites-availiable/doamin1.com.conf
和
/etc/apache2/sites-availiable/doamin2.com.conf
<VirtualHost *:80>
*//configriation*
</VirtualHost>
我将 /etc/apache2/sites-availiable/doamin1.com.conf 更改为如下形式
<VirtualHost domain1.com:80>
*//configriation*
</VirtualHost>
并且 /etc/apache2/sites-availiable/doamin2.com.conf 看起来像这样...
<VirtualHost domain2.com:80>
*//configriation*
</VirtualHost>
我认为这是因为两个文件都在块的开头行中查找 *:80 指令。这导致服务器恢复到第一个 conf 文件并使用该虚拟主机块中的“DocumentRoot”。