Chrome on OS X 不尊重 etc/hosts and/or httpd-vhosts.conf localhost 子域

Chrome on OS X doesn't respect etc/hosts and/or httpd-vhosts.conf localhost subdomains

过去几天,这种情况一直困扰着我。我在我的 etc/hosts 文件中设置了很多开发环境子域,就像这样...

127.0.0.1   localhost
127.0.0.1   sub.localhost
127.0.0.1   another.localhost
127.0.0.1   andanother.localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost

然后在我的Applications/MAMP/conf/apache/extra/httpd-vhosts.conf文件中指定,像这样...

NameVirtualHost *:80

NameVirtualHost sub.localhost:80
NameVirtualHost another.localhost:80
NameVirtualHost andanother.localhost:80

<VirtualHost *:80>
DocumentRoot "/Users/johndoe/websites"
ServerName localhost
</VirtualHost>

<VirtualHost sub.localhost:80>
DocumentRoot "/Users/johndoe/websites/sub"
ServerName sub.localhost
</VirtualHost>

<VirtualHost another.localhost:80>
DocumentRoot "/Users/johndoe/websites/another"
ServerName another.localhost
</VirtualHost>

<VirtualHost andanother.localhost:80>
DocumentRoot "/Users/johndoe/websites/andanother"
ServerName andanother.localhost
</VirtualHost>

最近他们都停止了在 Chrome 中的工作(Firefox 和 Safari 工作得很好)。我的所有本地主机子域开始出现 404 错误。

我只是想不通为什么 Chrome 没有将这些地址解析到我本地计算机上的那些目录。

.

经过大量研究(以及反复试验)后,我意识到这是一个 DNS 问题。以前,我在“系统偏好设置”>“网络”>“高级...”>“DNS”>“DNS 服务器”中的 DNS 设置如下...

8.8.8.8
8.8.4.4
xxx.xxx.xxx.x
xxx.xxx.xxx.x

那是前 2 个插槽中 Google 的 DNS 服务器,x 代表我的 ISP 的 DNS 服务器地址。经过一些搜索后,一些人建议首先添加我本地网络的 IP 地址,以此强制我的系统上的任何内容在转到外部 DNS 之前先在本地查看,所以我将我的网络路由器地址添加到其他地址之上...

10.0.1.1

这也不太奏效 - 或者它确实奏效了 - 但没有持续(老实说现在不记得了),但我接下来尝试的确实奏效了。我在本地网络地址上方添加了我机器的本地主机(家庭)地址,就像这样...

127.0.0.1
10.0.1.1
8.8.8.8
8.8.4.4
xxx.xxx.xxx.x
xxx.xxx.xxx.x

.

现在 Google Chrome 成功 "finds" 我所有的本地主机子域。

我当然希望所有这些对其他人有所帮助。

最近这也困扰着我。本来好好的,突然就停了。

我把路由器的IP地址(192.168.0.1)放在DNS服务器的第一位。