MacOS仅用于非WWW URL的文件条目



我正在运行macOSX 10.11.4。

我想让example.com指向我本地运行的apache服务器,但请www.example.com指向实际网站。

示例:我在/etc/hosts文件中有以下条目: 127.0.0.1 example.com如果我ping xplox.com和www.example.com,他们都达到127.0.0.1(我相信,因为规范的URL被认为是相同的)。

有趣的是,Chrome会按照我的意愿拉出URL,但是Firefox将击中Localhost。

-

编辑:我知道使用example.local更常规的内容,并且完全避免了此问题;但是,我的工作已经使用了www/non-www方法了一段时间,并希望在可能的情况下保留。

这可能太容易了,但是为什么不放置

example.com     127.0.0.1
www.example.com 123.52.232.12

进入您的/etc/hosts文件,其中123.52.232.12是真实示例网站的IP地址?

为什么会发生或如何阻止两个域进入我的主机文件

这是默认的分辨率订单,子域中的hosts文件自动扩展。@fragmentEdreality的解决方案通过使用DNSMASQ解析器提供了解决方法,该解析器也建议在https://serverfault.com/questions/431605/431605/dont-automatimationaly-include-include-include-all-subdomains-insmasq-address上进行了描述,并在HTTPS上进行了描述。://gist.github.com/ogrrd/5831371。

在运行OSX时,您可以为此添加自定义解析器。

创建目录/etc/resolver/并为域添加一个文件,您想解决(即example.com)。在文件中,您可以指定用于指定域的替代名称服务器。默认情况下,文件名定义了域(有关更多详细信息,请参见manpage)。

$ sudo mkdir -p /etc/resolver
$ echo "nameserver 127.0.0.1" | sudo tee /etc/resolver/example.com > /dev/null

您可以检查解析器是否使用命令scutil --dns

现在,您只需要运行像DNSMASQ这样的本地名称服务器即可将查询解析到127.0.0.1。您可以通过Homebrew安装DNSMASQ,也可以在Docker-container中运行:

$ docker run -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN 
    andyshinn/dnsmasq:2.75 
    --host-record=example.com,127.0.0.1

在此处查找有关Homebrew-Solution的更多信息。

相关内容

  • 没有找到相关文章

最新更新