如何使用相同的ip为多个域/主机设置hosts文件?

Vin*_*ana 36 hosts web-development-server

您必须知道,您可以使用"hosts"文件将主机名映射到IP地址.这在开发时非常有用,因为您可以更改project1的localhost.

这部分很清楚,但不幸的是我无法弄清楚如何设置这个以使用相同的ip打开多个项目.我尝试了一些没有成功的事情:

127.0.0.1/projects/project1  project1
127.0.0.1/projects/project2  project2
Run Code Online (Sandbox Code Playgroud)

我检查了一些相关的问题,但我找不到答案.那么,我能完成我想要做的事吗?有什么建议?

DRC*_*DRC 54

hosts文件只是从ip到多个名称的映射,因此您可以像这样指定ip旁边的所有名称

127.0.0.1 name1 name2 name3.domain
Run Code Online (Sandbox Code Playgroud)

  • 它只是一个像映射的dns,所以它没有任何路径或apache的概念,如子目录. (5认同)
  • 您需要在Apache配置中设置虚拟主机. (4认同)
  • 值得注意的是,在 Windows 上,这最多适用于 9 个别名 - 请参阅下面的[我的答案](/sf/ask/1225408481/#55628047)。 (2认同)

Vin*_*ana 29

感谢谷歌和合作者@jvilhena和@DRC,我得到了解决.我是这样做的:

如果您使用的是Windows和XAMPP,我的情况是第一步是设置'hosts'文件.如果您使用的是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
Run Code Online (Sandbox Code Playgroud)

第二步是在我的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>  
Run Code Online (Sandbox Code Playgroud)

还有一个例子就是为了它:)

<VirtualHost *>
    DocumentRoot "C:\xampp\htdocs\project1"
    ServerName local.project1
    <Directory "C:\xampp\htdocs\project1">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

现在,您可以在浏览器中键入local.project1和youcanuseany.name.here,它应该打开您的项目,就像您键入localhost/project1和localhost/projectX一样.我希望它有所帮助.

  • 不要忘记编辑httpd.conf文件,以便Apache实际加载有关虚拟主机的信息.要做到这一点,请查找并取消注释这一行:`#Include/Applications/XAMPP/etc/extra/httpd-vhosts.conf`删除`#`-symbol.我在[F6设计](http://f6design.com/journal/2012/03/11/configuring-virtualhosts-in-xampp-on-mac/)上找到了一条建议,这个答案给了我们的基地!:) (6认同)
  • 并且您必须重新启动Apache才能看到结果。 (2认同)

Ste*_*ers 5

在撰写本文时,有两个得到高度评价的答案-一个将所有别名放在一行中,另一个将它们放在单独的行中。值得注意的是,尽管第一个解决方案更紧凑,但由于Windows每行的别名数限制为9,因此可能还需要第二个解决方案。因此,要获得最大的紧凑性,但在有很多别名时仍可以使用:

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...
Run Code Online (Sandbox Code Playgroud)