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
Docker PHP-APACHE 容器全局设置 ServerName 指令