当前位置:  开发笔记 > 运维 > 正文

Windows主机文件中的通配符

如何解决《Windows主机文件中的通配符》经验,为你挑选了4个好方法。

我想设置我的本地开发机器,以便将任何请求*.local重定向到localhost.这个想法是,我开发多个网站,我可以再补充虚拟主机到Apache叫site1.local,site2.local等,让他们都决心localhost,而Apache的相应服务于不同的网站.

我在Windows XP上.

我尝试添加

127.0.0.1       *.local

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

127.0.0.1       .local

这两者似乎都不起作用.

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

我不想设置本地DNS服务器或任何困难,任何建议?



1> Petah..:

丙烯酸DNS代理(免费,开源)完成这项工作.它使用自己的主机文件创建代理DNS服务器(在您自己的计算机上).hosts文件接受通配符.

从官方网站下载

http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=Home

配置丙烯酸DNS代理

要配置丙烯酸DNS代理,请从上面的链接安装它,然后转到:

    开始

    程式

    丙烯酸DNS代理

    配置

    编辑自定义主机文件(AcrylicHosts.txt)

在文件末尾添加以下行:

127.0.0.1   *.localhost
127.0.0.1   *.local
127.0.0.1   *.lc

重新启动Acrylic DNS代理服务:

    开始

    程式

    Acrilic DNS代理

    配置

    重启亚克力服务

您还需要在网络接口设置中调整DNS设置:

    开始

    控制面板

    网络和互联网

    网络连接

    本地连接属性

    TCP/IPv4的

设置"使用以下DNS服务器地址":

Preferred DNS Server: 127.0.0.1

如果您将此答案与jeremyasnyder的答案(使用VirtualDocumentRoot)结合起来,则可以通过简单地创建目录来自动设置域/虚拟主机.


需要说明的是,"自定义主机文件"是AcrylicHosts.txt,而不是AcrylicConfiguration.ini.也许这应该是显而易见的,但它让我困惑了一段时间.

2> 小智..:

要回答您的问题,您不能在Windows下的hosts文件中使用通配符.

但是,如果您只想更改hosts文件以使新网站正常工作....您可以像这样配置您的Apache,而不必继续编辑它的配置:

http://postpostmodern.com/instructional/a-smarter-mamp/

基本上是基于我的设置的快速摘要,将以下内容添加到您的apache.conf文件中:

 LoadModule vhost_alias_module modules/mod_vhost_alias.so

 NameVirtualHost *:80

  
      Options Indexes FollowSymLinks Includes ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all 
  

  
      VirtualDocumentRoot c:/xampp/sites/%-1/%-2+/
  

这允许我添加如下条目:

127.0.0.1       test.dev

然后创建目录,c:\ xampp\sites\dev\test并将必要的文件放在那里,它就可以了.

另一种选择是在apache.conf中使用标记并引用http:// localhost/project /中的页面.



3> Biri..:

我不认为这是可能的.

无论如何,每次添加新站点和位置时都必须修改apache virtualroot条目,因此将新名称同步到Windows vhost文件并不是一件大事.

更新:请检查下一个答案和对此答案的评论.这个答案是6岁,不再正确.


动态虚拟主机是此处的关键字,并且受大多数服务器支持,即Apache和Nginx.所以不,你绝对不必每次创建项目时都触摸Apache-config.
只是要指出,当你有一个多语言网站时,你可能有一个带有`ServerAlias*.mydomain.localhost`的(`*`是语言代码),所以你不必每个都编辑httpd.conf你添加新语言的时间; 但您仍需要将子域添加到hosts文件,因此上述问题的相关性.
但是当使用Nginx时,没有必要更改Nginx的配置文件以添加一组新的二级域*.localhost.所以,它是hosts文件的减号.
我们也可以拥有通配符虚拟主机,它只能归结为`hosts`文件

4> Simon East..:

要添加到此处已经提出的重要建议,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 。

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有