【问题标题】:How do I set up the hosts file for multiple domains/hosts with the same IP?如何为具有相同 IP 的多个域/主机设置 hosts 文件?
【发布时间】:2013-07-04 13:22:46
【问题描述】:

您肯定知道,您可以使用“hosts”文件将主机名映射到 IP 地址。这非常有用,尤其是在您进行开发时,因为您可以更改 project1 的 localhost。

这部分很清楚,但不幸的是我不知道如何设置它以打开具有相同 IP 的多个项目。我尝试了一些没有成功的事情,例如:

127.0.0.1/projects/project1  project1
127.0.0.1/projects/project2  project2

我检查了一些相关问题,但找不到答案。那么,我能以某种方式完成我想做的事情吗?有什么建议吗?

【问题讨论】:

    标签: hosts web-development-server


    【解决方案1】:

    hosts 文件只是从名称到 IP 的映射。您可以像这样在 IP 旁边指定多个名称:

    127.0.0.1 name1 name2 name3.domain
    

    【讨论】:

    • 好的,但我如何进入特定文件夹?我的本地主机上有多个项目。 localhost/name1 localhost/name2 我想这是正确的问题。如何让 name1 指向 localhost/name1?
    • 它只是一个类似 dns 的映射,所以它没有任何路径或 apache 类似子目录的概念。
    • 您需要在 Apache 配置中设置虚拟主机。
    • 值得注意的是,在 Windows 上,这最多可用于 9 个别名 - 请参阅下面的 my answer
    【解决方案2】:

    感谢 Google 和合作者 @jvilhena 和 @DRC,我解决了这个问题。我是这样做的:

    如果您像我一样使用 Windows 和 XAMPP,第一步是设置“主机”文件。如果您使用的是 Windows,您可能会在 C:\Windows\System32\drivers\etc\hosts 中找到它。您可以使用任何文本编辑器对其进行编辑。

    您可以设置任意数量的主机名,所有主机名都指向您的本地主机,IP 为 127.0.0.1。

    例如:

     127.0.0.1               local.project1
     127.0.0.1               local.project2
     127.0.0.1               youcanuseany.name.here
    

    第二步是处理 Apache 文件 httpd-vhosts.conf。同样,我使用的是 Windows 和 XAMPP。这个文件很可能在 C:\xampp\apache\conf\extra\httpd-vhosts.conf 中。

    您不必这样做,但我喜欢将我的项目文件夹保存在我的 htdocs 文件夹中 @C:\xampp\htdocs。

    对于您为其创建“主机名”的每个项目,您应该将以下内容添加到您的 httpd-vhosts.conf 文件中:

    <VirtualHost *>
        DocumentRoot "C:\xampp\htdocs\projectx"
        ServerName youcanuseany.name.here
        <Directory "C:\xampp\htdocs\projectx">
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>  
    

    再举一个例子 :)

    <VirtualHost *>
        DocumentRoot "C:\xampp\htdocs\project1"
        ServerName local.project1
        <Directory "C:\xampp\htdocs\project1">
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    

    现在您可以在浏览器中输入local.project1youcanuseany.name.here,它应该会打开您的项目,就像您输入localhost/project1localhost/projectX 一样。我希望这会有所帮助。

    【讨论】:

    • 不要忘记编辑您的 httpd.conf 文件,以便 Apache 实际加载有关虚拟主机的信息。为此,请通过删除 #-symbol 查找并取消注释此行:#Include /Applications/XAMPP/etc/extra/httpd-vhosts.conf。我在F6 Design 找到了这条建议,它把这个答案带到了大本营! :)
    • 你必须重启 Apache 才能看到结果。
    • sudo service apache2 restart
    • 2021 年更新:对于 Apache 2.4 及之后的版本,语法:“Order allow,deny / Allow from all”已更改,现在是“要求所有授权” (加载适当的模块)在通用 .conf 文件中涵盖这两种情况。
    【解决方案3】:

    在撰写本文时,有两个投票率很高的答案 - 一个将所有别名放在一行中,另一个将它们放在不同的行中。值得注意的是,虽然第一个解决方案更紧凑,但从Windows has a limit of 9 for the number of aliases on each line 开始可能还需要第二个解决方案。所以要获得最大的紧凑性,但在有很多别名时仍然可以工作:-

    127.0.0.1 alias1 alias2 alias3 alias4 alias5 alias6 alias7 alias8 alias9
    127.0.0.1 alias10 alias11 alias12 alias13 alias14 alias15 alias16 alias17 alias18 
    127.0.0.1 alias19 ...etc...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      • 1970-01-01
      相关资源
      最近更新 更多