由于.dev
现在是gTLD并且迫使重定向到Chrome中的https,我使用PuPHPet建立了一个新的开发环境,其域名为awesome.localhost
而不是之前的默认awesome.dev
。
Chrome根本无法解析它并返回ERR_EMPTY_RESPONSE
消息,并且控制台中没有错误或信息。
我可以成功ping通域名和IP匹配。它在Firefox和Internet Explorer中也可以正常工作。
使用与Chrome中的服务器关联的IP地址,可以正确返回将虚拟主机添加到hosts文件的说明页面。
我该如何解决这个问题?可能是什么导致了这个?
Chrome版本63.0
我认为Chrome完全绕过.localhost
域名的DNS,并且在内部随时将其解析为127.0.0.1
。
RFC 6761保留.test
,.localhost
,.example
和.invalid
顶级域名。我会将.test
用于这些内部主机名。
根据RFC:
域名“localhost”。和任何属于“.localhost”的名字。特别在于以下方面:
- 用户可以像使用任何其他域名一样自由使用localhost名称。用户可以假设对本地主机名的IPv4和IPv6地址查询将始终解析为相应的IP环回地址。
- 应用程序软件可以将localhost名称识别为特殊名称,或者可以将它们传递给名称解析API,就像将其传递给其他域名一样。
- 名称解析API和库应该将localhost名称识别为特殊,并且应该总是返回地址查询的IP环回地址和所有其他查询类型的否定响应。名称解析API不应该将localhost名称的查询发送到其配置的缓存DNS服务器。
- ...