Apache - ServerName 中的连字符破坏了 VirtualHost

Posted

技术标签:

【中文标题】Apache - ServerName 中的连字符破坏了 VirtualHost【英文标题】:Apache - Hyphen in ServerName breaks VirtualHost 【发布时间】:2013-12-21 15:12:15 【问题描述】:

如果 ServerName 中有连字符,我无法让 Apache 的配置返回正确的页面。我在这里找到了一个标题为“虚拟主机条目中不允许使用破折号?”的页面,但它处理的是 DocumentRoot 中的连字符,而不是 ServerName。无论如何,它并没有解决我的问题,而且我找不到任何其他关于这个问题的参考资料。

我正在最近购买的运行 Apache 的 Ubuntu 12.04 服务器上设置多个虚拟主机 (VH)。 Ubuntu 对此的配置是有组织的,因此您有可用站点和已启用站点的文件夹。放置在 sites-availabe 中的单独文件用于每个单独的 VH。启用 VH 只需从 sites-available 文件夹中的文件创建符号链接到 sites-enabled 文件夹,然后重新启动 Apache。

我已经有几个正在工作的 VH。这是一个简单的方法,因为只需将工作文件复制到新文件名并更改一些变量即可。

我所有正常工作的条目在 ServerName 或 ServerAlias 中都没有任何连字符。一个有连字符的条目不起作用。 Apache 没有返回正确的页面,而是返回主机的基本页面(这告诉我 DNS 很好)。

我尝试将 ServerName 和 ServerAlias 括在引号中,无论有无。没有变化。

很多域都使用连字符,我不能是唯一一个遇到这个问题的人。有没有人找到解决方法?这是我的配置:

 <VirtualHost *:80>
 ServerAdmin webmaster@localhost
 ServerName datacore-inc.com
 ServerAlias www.datacore-inc.com
 DocumentRoot /home/web/datacore/www
 <Directory />
         Options FollowSymLinks
         AllowOverride None
 </Directory>
 <Directory /home/web/datacore/www/>
         Options Indexes FollowSymLinks MultiViews
         AllowOverride None
         Order allow,deny
         allow from all
 </Directory>

感谢您的帮助。

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,并认为问题来自 ServerName 中的连字符。但实际上我已经两次声明了 VirtualHost。我已经删除了其中一个并解决了问题。

最好的问候,

【讨论】:

以上是关于Apache - ServerName 中的连字符破坏了 VirtualHost的主要内容,如果未能解决你的问题,请参考以下文章

apache多站点配置中ServerName/ServerAlias

Apache2 日志中的服务器名称

Apache:如何为一个ServerName拥有多个站点?

Docker PHP-APACHE 容器全局设置 ServerName 指令

Apache 2.4 VirtualHost ServerName 被忽略

markdown Apache [127.0.1.1。设置'ServerName']