Apache 2.2子域名显示与主域名相同的网站
我在www.domain.com上有主网站,并创建了一个名为demo.domain.com的子域名为 ,但是当我尝试访问子域名demo.domain.com时,它显示与我的主域相同的网站,我该如何解决这个问题? 下面是我如何在我的Apache 2.2子域名显示与主域名相同的网站
/etc/httpd/conf/httpd.conf中
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/domain.com/public_html
ServerName domain.com
ServerAlias www.domain.com
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/demo.domain.com/public_html
ServerName demo.domain.com
ServerAlias www.demo.domain.com
</VirtualHost>
我甚至试过
service httpd restart
它抛出
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Mon Jan 13 15:54:14 2014] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
定义的虚拟主机
我在主文件中添加了主域和子域
[[email protected]_html]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
1.2.3.4 domain.com demo.domain.com
我在我的DNS管理器中为子域名创建了一个A记录,指向我的主vps IP地址。 我的DNS文件
demo IN A 1.2.3.4
@ IN A 1.2.3.4
www IN A 1.2.3.4
所以,当我访问domain.com和demo.domain.com它显示
我已经在
创建的index.html在同一个页面domain.com的/var/www/demo.domain.com/public_html
[[email protected]_html]# cat index.html
<html>
<head>
<title>www.example.com</title>
</head>
<body>
<h1>Success: You Have Set Up a Virtual Host</h1>
</body>
</html>
所以我是如何解决这一问题?我使用CentOS 6的,64位
当我尝试访问的子域demo.domain.com,其显示的同一站点中我的主域名www.domain.com
正如arco444的建议。
尝试
cat /etc/httpd/conf/httpd.conf | grep NameVirtualHost
,并注释掉
#NameVirtualHost *:80
所以ITLL成为
NameVirtualHost *:80
然后重新启动Apache通过输入
service httpd restart
现在它应该显示子域的各自的网站/页面。
当你说“它显示与我的主域相同的网站“,它是否将子域显示为主域的子目录?例如,www.domain.com/demo/
。这对于一些控制面板和服务器设置来说是相当正常的,尽管不太理想。使用/htaccess代替使用httpd.conf,你可能会得到更好的结果:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com [NC]
RewriteCond %{REQUEST_URI} ^/demo [NC]
RewriteRule ^demo/?(.*)$ http://demo.domain.com/$1 [R=301,L]
nope,其显示正确的子域http://demo.domain.com – AMB
然后当你输入演示时,它究竟显示什么。 domain.com? “它显示同一网站”是什么意思?如果地址栏显示demo.domain.com,有什么问题? –
你在你的httpd.conf中有'NameVirtualHost *:80'的地方吗?没有这个,你将会打到默认的VirtualHost。 – arco444
是的,我有#NameVirtualHost *:80 在我的httpd.conf中,但它的注释掉了。 – AMB
我刚刚评论它,并重新启动apache和瞧,它的作品.... +1 – AMB