仅在将服务器名称用作主机时应用虚拟主机

时间:2014-09-23 21:25:10

标签: apache virtualhost

所以我在文件夹htdocs/project中有一个项目。我需要通过域project.xx访问此项目以测试子域mod_rewrite。为此,我修改了hosts文件,将project.xx映射到127.0.0.1

然后,我使用以下代码在apache中创建了一个虚拟主机:

<VirtualHost *:80>
    ServerName project.xx
    ServerAlias www.project.xx
    DocumentRoot C:/xampp/htdocs/project/
</VirtualHost>

按预期方式工作,当导航到http://project.xx时,我最终会在C:/xampp/htdocs/project/的网站上运行。

我只是在编辑其他内容而且我发现有问题 - 导航到127.0.0.1带我到我的project网站。

如何防止虚拟主机设置影响整个localhost?当浏览器将project作为project.xx标题发送时,我只想转到Host

1 个答案:

答案 0 :(得分:0)

正如我在#httpd IRC chanell上所了解的那样,一旦你开始使用localhost,它还要求你为本地主机本身设置虚拟主机。

这意味着在匹配域project.xx之前,存在127.0.0.1localhost缪斯的规则 - 因此,如果未指定域,则将使用默认行为:

#Rule for localhost as it normaly behaves
<VirtualHost *:80>
    #IP and `localhost` domain name
    ServerName 127.0.0.1
    ServerAlias localhost
    #The normal document root
    DocumentRoot C:/xampp/htdocs/
</VirtualHost>
#Rule for your project
<VirtualHost *:80>
    ServerName project.xx
    ServerAlias www.project.xx
    DocumentRoot C:/xampp/htdocs/project/
</VirtualHost>