我们希望在开发人员的 Windows 机器上进行设置,以便所有.dev
域都解析为 localhost。在 Unix 系统上,只需添加一行即可启动 dnsmasq hosts
,但遗憾的是 dnsmasq 仅适用于 Unix。在 Windows 方面,我不知道是否有等效的解决方案,无论是内置的还是第三方实用程序中提供的。我能想到的最好的方法是一些 PowerShell 脚本,以管理员身份运行,这些脚本会c:\Windows\System32\Drivers\etc\hosts
直接更改 — 充其量是丑陋且容易出错的。
正确的做法是什么?目前没有有效的解决方案吗?
答案1
您的 DNS 中是否已有 .dev 区域?您可以创建一个通配符条目,其中 *.dev 进入环回。
答案2
替代方案:让你的开发人员直接添加.localtest.me,这是一个已经存在的公共 DNS 区域(带有 * A 记录),用于此目的。
答案3
我使用 Acrylic DNS Proxy 解决了这个问题。这是一款适用于 Windows 的免费开源软件,可让您将文件夹通配符化为本地顶级域名注册表。
- 在此处下载 Acrylic DNS Proxy: http://mayakron.altervista.org/wikibase/show.php?id=AcrylicHome
- 配置您的网络设置以指向您的本地 IP 地址,如下所示: http://mayakron.altervista.org/wikibase/show.php?id=AcrylicWindows10Configuration
- 在这里打开你的 Acrylic 配置文件:开始 > 程序 > Acrylic DNS Proxy > 编辑自定义主机文件 (AcrylicHosts.txt)
- 像这样添加您的通配符顶级域名:
127.0.0.1 *.dev
- 像这样重新启动 Acrylic:开始 > 程序 > Acrylic DNS Proxy > 重新启动 Acrylic 服务
- 将通配符添加到您的 Apache 配置文件中。它可能看起来类似于:
它可能看起来与此类似:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
NameVirtualHost *.dev:80
<Directory "/www/sites">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *.dev:80>
VirtualDocumentRoot c:/www/sites/%-1/%-2+/
</VirtualHost>
这应该够了吧。
答案4
我可以推荐http://localhost.tv- 所有子域名解析为 127.0.0.1