OS X上的Chrome不尊重etc / hosts和/或httpd-vhosts.conf localhost子域

时间:2015-05-27 17:46:59

标签: macos apache google-chrome localhost mamp

这种情况在过去的几天里一直困扰着我。我在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工作得很好)。我开始为所有localhost子域获取404错误。

  • 编辑/更改etc / hosts中的设置不起作用
  • 编辑/更改我的httpd-vhosts.conf文件中的设置无法正常工作

我无法弄清楚为什么Chrome没有将这些地址解析为我本地计算机上的那些目录。

2 个答案:

答案 0 :(得分:0)

经过大量研究(试验和错误)后,我意识到这是一个DNS问题。以前,我在系统偏好设置&gt;中的DNS设置;网络&gt;高级...&gt; DNS&gt; DNS服务器如下......

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

这是前两个插槽中的Google DNS服务器,x代表我的ISP的DNS服务器地址。经过一番搜索后,有些人建议首先添加我本地网络的IP地址,作为一种强制我的系统上的任何东西在进入外部DNS之前首先在本地查看的方式,所以我将网络路由器的地址添加到其他地址之上...

10.0.1.1

并且它也没有完全奏效 - 或者它确实 - 但没有持续(老实说现在不记得了),但我接下来尝试了DID的工作。我将机器的localhost(home)地址添加到本地网络的地址之上,就像这样......

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成功“找到”了我所有的localhost子域。

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

答案 1 :(得分:0)

最近这也让我感到烦恼。它工作正常然后突然停了下来。

我首先将我的路由器的IP地址(192.168.0.1)放在DNS服务器上。