我想设置我的本地开发机器,以便任何对*的请求。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服务器,有什么建议吗?
我们在本地DNS服务器中使用通配符DNS:添加一个A记录,比如*。Local -> 127.0.0.1
我认为你的网络设置需要在网络上机器的域名后缀搜索列表中有所选择的域名后缀,所以你可能想用你公司的内部域名(例如.int)取代.local,然后添加一个子域名,如.localhost.int,以明确它的用途。
因此,*.localhost.int将为网络上的每个人解析为127.0.0.1,如果端点挂起子域(例如site1.localhost.int, site2.localhost.int),则所有开发人员的配置文件设置将“正常工作”。
dnsmasq看起来也不错,但我还没有尝试过:
http://ihaveabackup.net/2012/06/28/using-wildcards-in-the-hosts-file/
我使用DNSChef来做这个。
https://thesprawl.org/projects/dnschef/
你必须下载应用程序,在Linux或Mac中,你需要python来运行它。Windows有自己的exe。
例如,您必须创建一个包含dns条目的ini文件
[A]
*.google.com=192.0.2.1
*.local=127.0.0.1
*.devServer1.com=192.0.2.3
然后,您必须以管理员权限启动dns应用程序
sudo python dnschef.py --file myfile.ini -q
或者在Windows中
runas dnschef.exe --file myfile.ini -q
最后,您需要设置为您的本地主机环境(网络,接口,DNS或类似或在linux /etc/resolv.conf)的唯一DNS。
就是这样
我制作了这个简单的工具来代替主机。支持正则表达式。
https://github.com/stackia/DNSAgent
配置示例:
[
{
"Pattern": "^.*$",
"NameServer": "8.8.8.8"
},
{
"Pattern": "^(.*\\.googlevideo\\.com)|((.*\\.)?(youtube|ytimg)\\.com)$",
"Address": "203.66.168.119"
},
{
"Pattern": "^.*\\.cn$",
"NameServer": "114.114.114.114"
},
{
"Pattern": "baidu.com$",
"Address": "127.0.0.1"
}
]