![当 URL 不包含“www”时访问网站时出错](https://linux22.com/image/1551977/%E5%BD%93%20URL%20%E4%B8%8D%E5%8C%85%E5%90%AB%E2%80%9Cwww%E2%80%9D%E6%97%B6%E8%AE%BF%E9%97%AE%E7%BD%91%E7%AB%99%E6%97%B6%E5%87%BA%E9%94%99.png)
为什么第一个链接可以工作,而第二个链接不工作?
1.http://www.gifgifgifgifgif.com/gif/11740.gif
2.gifgifgifgifgif.com/gif/11740.gif
对于第二个链接,我从我的 ISP 收到一个错误:
http://navigationshilfe1.t-online.de/dnserror?url=http://www.gifgifgifgifgif.comgif/
这是什么原因造成的?是我的浏览器,我的 ISP 还是服务器 (gifgifgifgifgif.com)?
我猜是服务器配置错误,只有 URL 包含 www 时才有效。这只是猜测。
答案1
问题在于服务器配置不正确。如果你尝试使用 curl 转到第二个链接,curl -i http://gifgifgifgifgif.com/gif/11740.gif
你会收到
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sun, 28 Jan 2018 17:53:39 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 251
Connection: keep-alive
Location: http://www.gifgifgifgifgif.comgif/11740.gif
因此浏览器重定向到格式错误的位置 URL。
答案2
www.gifgifgifgifgif.com 和 gifgifgifgifgif.com 是两个不同的主机名。主机名到 IP 地址的解析在 DNS 中定义。如果第二个主机名没有 DNS 记录,您将收到如您所指出的 DNS 错误。
www. 仅仅是针对运行 Web 服务器的主机的约定,它没有语义含义且不是强制性的。