我想设置我的本地开发机器,以便任何对*的请求。Local被重定向到localhost。这个想法是,当我开发多个站点时,我只需向Apache添加名为site1的vhosts。地方,site2。让它们都解析到localhost,而Apache则相应地服务于不同的站点。

我用的是Windows XP。

我试着加上

127.0.0.1       *.local

到我的c:\windows\system32\drivers\etc\hosts文件,也试过:

127.0.0.1       .local

这两种方法似乎都不管用。

我知道我可以在不同的端口号上设置它们,但这是一种痛苦,因为很难记住哪个端口是哪个端口。

我不想设置本地DNS服务器,有什么建议吗?


当前回答

我找不到书面禁止,但按照惯例,Windows hosts文件紧跟UNIX hosts文件,不能在该文件中放入通配符主机名引用。

如果你阅读手册页,它说:

DESCRIPTION
     The hosts file contains information regarding the known hosts on the net-
     work.  For each host a single line should be present with the following
     information:

           Internet address
           Official host name
           Aliases

尽管它说,

     Host names may contain any printable character other than a field delim-
     iter, newline, or comment character.

从实践层面来看,这是不正确的。

基本上,查看/etc/hosts文件的代码不支持通配符条目。

解决方法是提前创建所有的条目,可能使用一个脚本来一次性放置几百个条目。

其他回答

虽然你不能添加这样的通配符,但你可以添加你需要的完整网站列表,至少对于测试来说,这对我来说足够好,在你的hosts文件中,你只需要添加:

127.0.0.1 site1.local 127.0.0.1 site2.local 127.0.0.1 site3.local ...

你可以试试AngryHosts,它提供了一种支持通配符和正则表达式的方法。实际上,它是一个主机文件增强和管理软件。 更多功能可以在http://angryhosts.com/features/上看到

您可以使用动态DNS客户端,例如http://www.no-ip.com。然后,用外部DNS服务器CNAME *.mydomain.com改为mydomain.no-ip.com。

这可以使用Pi-Hole完成,只需编辑“/etc/hosts”并重新启动dns服务。

nano /etc/hosts
pihole restartdns

例子:

127.0.1.1       raspberrypi
192.168.1.1     w1.dev.net
192.168.1.2     w2.dev.net
192.168.1.3     w3.dev.net

为了增加这里已经有的伟大建议,XIP。IO是一个非常棒的通配符DNS服务器,是公开可用的。

      myproject.127.0.0.1.xip.io  -- resolves to -->   127.0.0.1
  other.project.127.0.0.1.xip.io  -- resolves to -->   127.0.0.1
   other.machine.10.0.0.1.xip.io  -- resolves to -->   10.0.0.1

(对于无法访问主机文件的iOS设备上的测试站点,指定非环回地址的能力非常棒。)

如果您将此配置与其他回答中提到的一些Apache配置相结合,则可以添加无需任何设置的VirtualHosts。