没有 http(s) 前缀的 Href

新手上路,请多包涵

我刚刚创建了原始的 html 页面。这是: 示例 这是它的标记:

 <a href="www.google.com">www.google.com</a>
<br/>
<a href="http://www.google.com">http://www.google.com</a>

如您所见,它包含两个链接。第一个 href 没有“http”前缀,当我单击此链接时,浏览器将我重定向到不存在的页面 https://fiddle.jshell.net/_display/www.google.com 。第二个 href 有这个前缀,浏览器生成正确的 url http://www.google.com/ 。是否可以使用没有 http(s) 前缀的 hrefs,例如 www.something.com

原文由 Pupkin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 848
2 个回答

这是可能的,而且您现在确实正在这样做。它只是不做你认为它做的事。

考虑一下当您链接到此时浏览器会做什么:

 href="index.html"

当你链接到这个时它会做什么?:

 href="index.com"

或这个?:

 href="www.html"

要么?:

 href="www.index.com.html"

浏览器不知道你的 _意思_,它只知道你 _告诉它什么_。如果没有前缀,它将遵循当前 HTTP 地址的标准。前缀告诉它它需要完全从一个新的根地址开始。

请注意,您 不需要 http: 部分,您可以这样做:

 href="//www.google.com"

浏览器将使用任何当前协议( httphttps 等),但 // 告诉它这是一个新地址—。

原文由 David 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以通过在路径前面使用 // 来省略协议。这是一个例子:

 <a href="//www.google.com">Google</a>

通过使用 // ,您可以告诉浏览器这实际上是一个新的(完整的)链接,而不是相对链接(相对于您当前的链接)。

原文由 ssc-hrep3 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题