可能已经有人问过这个问题,但我找不到直接的答案,或者我找到的答案无效。
我有一个域名mydomain.com,解析到一个IP地址;假设为8.8.8.8。DNS设置还使用A记录将两个子域指向该IP地址。它们是dev.mydomain.com和staging.mydomain.com。两个子域都有一个指向8.8.8.8的A记录。
在服务器(8.8.8.8)上,我有两个虚拟主机文件。它们如下所示:
staging.mydomain.com.conf
<VirtualHost *:80>
ServerName staging.mydomain.com
DocumentRoot /var/www/html/mydomain.com/staging/
</VirtualHost>
而且...
dev.mydomain.com.conf
<VirtualHost *:80>
ServerName dev.mydomain.com
DocumentRoot /var/www/html/mydomain.com/dev/
</VirtualHost>
问题是:
无论我访问http://staging.mydomain.com还是http://dev.mydomain.com,我总是会落在staging.mydomain.com上(Apache提供这些文件)。
我已经重新启动了Apache,甚至是服务器。如果我更改.conf文件的顺序,以便dev排在第一位,我总是会看到它。任何建议都将不胜感激。谢谢!
更新
我又回到了这个问题!如果您知道您的语法是正确的,那么您可能有一个错误的符号链接。删除它并重新创建,在其中重新启动apache。我刚刚做到了这一点,解决了数小时的头皮屑。在CentOS
上,您可以使用httpd -S
检查可用的虚拟主机。
更新2
我也发现当虚拟主机的Apache日志文件不存在或不可写时,存在此问题。