我想设置我的本地开发机器,以便将任何请求*.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服务器或任何困难,任何建议?
丙烯酸DNS代理(免费,开源)完成这项工作.它使用自己的主机文件创建代理DNS服务器(在您自己的计算机上).hosts文件接受通配符.
从官方网站下载
http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=Home
要配置丙烯酸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
)结合起来,则可以通过简单地创建目录来自动设置域/虚拟主机.
要回答您的问题,您不能在Windows下的hosts文件中使用通配符.
但是,如果您只想更改hosts文件以使新网站正常工作....您可以像这样配置您的Apache,而不必继续编辑它的配置:
http://postpostmodern.com/instructional/a-smarter-mamp/
基本上是基于我的设置的快速摘要,将以下内容添加到您的apache.conf文件中:
LoadModule vhost_alias_module modules/mod_vhost_alias.so NameVirtualHost *:80Options 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 /中的页面.
我不认为这是可能的.
无论如何,每次添加新站点和位置时都必须修改apache virtualroot条目,因此将新名称同步到Windows vhost文件并不是一件大事.
更新:请检查下一个答案和对此答案的评论.这个答案是6岁,不再正确.
要添加到此处已经提出的重要建议,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 。