VirtualHost 与子域的行为不符

Posted

技术标签:

【中文标题】VirtualHost 与子域的行为不符【英文标题】:VirtualHost's not acting as expected with subdomain 【发布时间】:2017-04-12 10:00:17 【问题描述】:

这是我的设置的简化。我有一个没有 ServerName 或 ServerAliases 的默认 VirtualHost(启用了站点的 000-default.conf):

<VirtualHost *:80>
DocumentRoot /var/www/html
</VirtualHost>

那我还有一个(stuff.joe.conf):

<VirtualHost *:80>
DocumentRoot /var/www/stuff/
ServerName stuff.joe.com
</VirtualHost>

在我看来,我认为我对这应该如何工作有一个很好的想法。

正确访问 http://joe.com/ 会将我带到默认虚拟主机并指向正确的位置 (/var/www/html/)。

访问http://stuff.joe.com/index.html 会找到辅助虚拟主机配置并将我带到我期望它去的地方(/var/www/stuff/index.html)。

但是...访问http://stuff.joe.com/,与我的想法相反,匹配默认虚拟主机并将我带到/var/www/html/

这看起来很奇怪。我在这里错过了什么吗?我希望它在这两种情况下都能捕捉到 stuff.joe.com 配置。为什么它在两种情况下的行为不同?

【问题讨论】:

【参考方案1】:

我在辅助虚拟主机配置上缺少 DirectoryIndex 指令,因此它回退到默认虚拟主机。

【讨论】:

以上是关于VirtualHost 与子域的行为不符的主要内容,如果未能解决你的问题,请参考以下文章

glActiveTexture 默认行为与预期不符

IE 事件传播与 jQuery 自动完成/jScrollPane 的行为不符

通配符和静态子域的虚拟主机

paste0() 函数中的 sep 参数的行为与预期不符[关闭]

将所有子域从 http 重定向到 https

URI 重写到子域