好的,所以我在CentOS 6(64位)Web服务器上遇到apache问题。
每当我加载http://myserver.com/sub时,它都可以正常工作并在/ var / www / html / sub中加载页面。
出于某种原因,在加载http://sub.myserver.com时,它会在/var/www/html
而不是/var/www/html/sub
中加载页面。
此外,我的DNS名称服务器在相同的vps上运行。以下是区域文件中的记录:
; Mapping
@ IN A 127.0.0.1
www IN A 127.0.0.1
我的设置是否有问题,或者我是否需要编辑某些配置?
感谢。
答案 0 :(得分:0)
在我的服务器上,我设置了一个虚拟主机以使子域工作。我相信如果你没有为它设置虚拟主机,apache不知道在哪里发送subdomain.domain.tld请求,所以它只是将它发送到与primarydomainl.tld请求相同的地方。
您必须在apache配置文件中设置虚拟主机。有几种方法可以做到,但我个人决定将它放入httpd.conf文件中。
如果您使用的是centos,那么它将位于/etc/httpd/conf/httpd.conf中 在ubuntu上它位于/ etc / apache2 /某个地方,虽然我不完全确定整个路径并且没有一个ubuntu机器旋转atm来检查。
以下是我服务器上当前正常运行的示例:
<VirtualHost *:80>
ServerName primarydomain.tld
ServerAlias www.primarydomain.tld
DocumentRoot /var/www/html
<Directory "/var/www/html">
allow from all
Options +Indexes
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.primarydomain.tld
DocumentRoot /var/www/subdomain
<Directory "/var/www/subdomain">
allow from all
Options +Indexes
</Directory>
</VirtualHost>
您还需要确保设置A和CNAME记录:
subdomain.primarydomain.tld ipaddress CNAME * .subdomain.primarydomain.tld subdomain.primarydomain.tld