我在www.domain.com上有主站点,并创建了一个名为demo.domain.com的子域名 但当我尝试访问子域demo.domain.com,它显示与我的主域相同的网站,我该如何解决这个问题? 这是我如何在我的
中定义虚拟主机/etc/httpd/conf/httpd.conf中
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
DocumentRoot /var/www/domain.com/public_html
ServerName domain.com
ServerAlias www.domain.com
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
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
我在主机文件中添加了主域名和子域名
[root@public_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时,它会显示与domain.com相同的页面
我在
中创建了一个index.html/var/www/demo.domain.com/public_html
[root@public_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
答案 0 :(得分:0)
当您说“它显示与我的主域名相同的网站”时,它是否将子域显示为主域的子目录?例如,www.domain.com/demo/
。对于某些控制面板和服务器设置而言,这是相当正常的,尽管是不合需要的行为。使用/.htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com [NC]
RewriteCond %{REQUEST_URI} ^/demo [NC]
RewriteRule ^demo/?(.*)$ http://demo.domain.com/$1 [R=301,L]
答案 1 :(得分:0)
正如arco444建议的那样。
试
cat /etc/httpd/conf/httpd.conf | grep NameVirtualHost
并注释掉
#NameVirtualHost *:80
所以它会变成
NameVirtualHost *:80
然后输入
重启apacheservice httpd restart
现在它应该显示子域名各自的网站/页面。