虚拟主机设置不起作用
Virtual Host setting not working
我在 vps 服务器上托管两个域。域,假设 www.abc.net(或 abc.net)和 www.xyz.net(或 xyz.net)具有以下配置
<VirtualHost *:80>
ServerName abc.net
ServerAlias www.abc.net
ServerAdmin webmaster@localhost
DocumentRoot /var/www/abc.net
ErrorLog ${APACHE_LOG_DIR}/abc.net.error.log
CustomLog ${APACHE_LOG_DIR}/abc.net.access.log combined
</VirtualHost>
和
<VirtualHost *:80>
ServerName xyz.net
ServerAlias www.xyz.net
ServerAdmin webmaster@localhost
DocumentRoot /var/www/xyz.net
ErrorLog ${APACHE_LOG_DIR}/xyz.net.error.log
CustomLog ${APACHE_LOG_DIR}/xyz.net.access.log combined
</VirtualHost>
除此之外,我还有默认的 apache2 00-default-site.conf(未更改)和 rutorrent.conf
<VirtualHost *:80>
ServerAlias *
DocumentRoot /var/www/
CustomLog /var/log/apache2/rutorrent.log vhost_combined
ErrorLog /var/log/apache2/rutorrent_error.log
SCGIMount /rutorrent/RPC2 127.0.0.1:5000
<Directory "/var/www/rutorrent">
AuthName "user1"
AuthType Basic
Require valid-user
AuthUserFile /var/www/rutorrent/.htpasswd
</Directory>
</VirtualHost>
假设我的 ip 为 t.u.v.w 我有以下 /etc/hosts 文件集
127.0.0.1 localhost
127.0.1.1 template.pcsmarthosting.co.uk template
t.u.v.w abc.net
t.u.v.w xyz.net
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
我可以正确访问 www.abc.net,因为它会转到正确的文件夹,但是 www.xyz.net 会转到 /var/www/ 与 http://t.u.v.w
相同
www.xyz.net 即使它是唯一启用的站点也不起作用。
我该如何解决这个问题?
系统主机名可能是 www.xyz.net ,这意味着 000-default 的行为就好像它隐含地具有 "ServerName www.xyz.net" 一样。
您应该在 000-default 中放置一个虚拟的 ServerName,这样就没有风险了。
我在 vps 服务器上托管两个域。域,假设 www.abc.net(或 abc.net)和 www.xyz.net(或 xyz.net)具有以下配置
<VirtualHost *:80>
ServerName abc.net
ServerAlias www.abc.net
ServerAdmin webmaster@localhost
DocumentRoot /var/www/abc.net
ErrorLog ${APACHE_LOG_DIR}/abc.net.error.log
CustomLog ${APACHE_LOG_DIR}/abc.net.access.log combined
</VirtualHost>
和
<VirtualHost *:80>
ServerName xyz.net
ServerAlias www.xyz.net
ServerAdmin webmaster@localhost
DocumentRoot /var/www/xyz.net
ErrorLog ${APACHE_LOG_DIR}/xyz.net.error.log
CustomLog ${APACHE_LOG_DIR}/xyz.net.access.log combined
</VirtualHost>
除此之外,我还有默认的 apache2 00-default-site.conf(未更改)和 rutorrent.conf
<VirtualHost *:80>
ServerAlias *
DocumentRoot /var/www/
CustomLog /var/log/apache2/rutorrent.log vhost_combined
ErrorLog /var/log/apache2/rutorrent_error.log
SCGIMount /rutorrent/RPC2 127.0.0.1:5000
<Directory "/var/www/rutorrent">
AuthName "user1"
AuthType Basic
Require valid-user
AuthUserFile /var/www/rutorrent/.htpasswd
</Directory>
</VirtualHost>
假设我的 ip 为 t.u.v.w 我有以下 /etc/hosts 文件集
127.0.0.1 localhost
127.0.1.1 template.pcsmarthosting.co.uk template
t.u.v.w abc.net
t.u.v.w xyz.net
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
我可以正确访问 www.abc.net,因为它会转到正确的文件夹,但是 www.xyz.net 会转到 /var/www/ 与 http://t.u.v.w
相同www.xyz.net 即使它是唯一启用的站点也不起作用。
我该如何解决这个问题?
系统主机名可能是 www.xyz.net ,这意味着 000-default 的行为就好像它隐含地具有 "ServerName www.xyz.net" 一样。
您应该在 000-default 中放置一个虚拟的 ServerName,这样就没有风险了。