本地主机上的 Apache 虚拟主机

Posted

技术标签:

【中文标题】本地主机上的 Apache 虚拟主机【英文标题】:Apache vhosts on localhost 【发布时间】:2011-05-13 21:03:19 【问题描述】:

我设法在我的本地机器上设置了虚拟热点,但我现在有点碰壁了。

通常,当您在浏览器中键入 localhost/ 时,您会看到您应该看到的内容。但是在我设置了我的虚拟主机之后,我输入的任何东西都会进入虚拟主机。我想不出办法将虚拟主机和旧功能结合在一起。

这是我的 vhost 文件(顺便说一句,我正在使用 xampplite)

<VirtualHost domain.eu>
    ServerName domain.eu
     DocumentRoot /www/domain

     ServerAlias *.domain.eu
</VirtualHost>

<VirtualHost domain.sk>
    ServerName domain.sk
    DocumentRoot /www/domain
</VirtualHost>

第二个通过 htaccess 重定向到 sk.domain.eu。当我将这 3 行添加到虚拟主机时,本地主机开始工作,但即使是其他虚拟主机也会转到 /www/

<VirtualHost localhost>
    DocumentRoot /www
</VirtualHost>

但是每次我需要 localhost 时评论/取消评论这 3 行是愚蠢的。有什么建议可以让他们一起工作吗?

感谢您的宝贵时间

【问题讨论】:

【参考方案1】:

您真的不应该在 VirtualHost 声明中使用域名。

如果这三个虚拟主机的 IP 地址不同,你应该将它们各自的 IP 地址放入 VirtualHost 块中,并且永远不要提及 NameVirtualHost。

如果它们使用相同的 IP 地址,则您必须使用 NameVirtualHost,然后您必须在每个虚拟主机中使用与 NameVirtualHost 声明中相同的拼写重复名称。

【讨论】:

【参考方案2】:

尝试在VirtualHost 容器之前添加这个:

NameVirtualHost localhost
NameVirtualHost domain.sk
NameVirtualHost domain.eu

【讨论】:

以上是关于本地主机上的 Apache 虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

如何将文件放在本地主机上

Apache mod_rewrite:仅当不在本地主机中时才强制 www

laravel 中的护照详细信息 api 在本地主机上可以正常工作,但不能在共享主机上运行

与我的团队成员共享本地主机

不同端口上的 Apache 虚拟主机不起作用

c#Web Api:本地主机上的 HTTP 200 但远程主机上的 400/401 具有相同的用户