这是我的 VirtualHost 文件
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html/backendtwo/
ServerName www.designer-school.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName www.joshhornby.co.uk
</VirtualHost>
joshhornby.co.uk 是根目录,我之所以添加这个目录,是因为在为 designer-school.com 添加第一个 VirtualHost 后,joshhornby 上的任何 URL(例如 joshhornby.co.uk/typewriter)都会停止工作。我也无法访问我的博客文章,请亲自尝试一下 joshhornby.co.uk 是地址。博客地址的永久链接如下 http://joshhornby.co.uk/post/web-course
正如您所见,这将返回 404。
我的问题是如何在同一台服务器上提供两个网站,同时又不阻止一个网站正常运行。
答案1
尝试NameVirtualHost *
代替*:80
您描述的行为的原因是请求 joshhornby.co.uk 打开第一个,这NameVirtualHost *:80
将与第一个VirtualHost *:80
定义匹配。
如果您只使用NameVirtualHost *
,那么您就是在告诉 apache 搜索所有VirtualHost
定义以找到最佳匹配,而不是第一个正面匹配。
答案2
您应该使用 NameVirtualHosts。
放一个
NameVirtualHost *:80
在您的vhost配置之前。