好的,所以我在 CentOS 6(64 位)网络服务器上遇到了 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
我的设置有问题还是我需要编辑一些配置?
谢谢。
最佳答案
在我的服务器上,我设置了一个虚拟主机来让子域工作。我相信如果你没有为它设置虚拟主机,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
关于apache - Centos6 - Apache |子域不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34748902/