搜索

首页  >  问答  >  正文

缺少http(s)前缀的Href链接

<p>我刚刚创建了一个简单的HTML页面。在这里:example 这是它的标记:</p> <pre class="brush:php;toolbar:false;"><a href="www.google.com">www.google.com</a> <br/> <a href="http://www.google.com">http://www.google.com</a></pre> <p>正如你所见,它包含两个链接。第一个链接的href没有'http'前缀,当我点击这个链接时,浏览器将我重定向到不存在的页面<code>https://fiddle.jshell.net/_display/www.google.com</code>。第二个链接的href有这个前缀,浏览器生成了正确的URL<code>http://www.google.com/</code>。是否可能使用没有http(s)前缀的href,如<code>www.something.com</code>?</p>
P粉329425839P粉329425839523 天前610

全部回复(2)我来回复

  • P粉299174094

    P粉2991740942023-08-23 09:10:30

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

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

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

    回复
    0
  • P粉957723124

    P粉9577231242023-08-23 00:13:24

    这是可能的,而且你现在正在做。它只是不会做你想要的事情。

    考虑一下当你链接到这个时,浏览器会做什么:

    href="index.html"

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

    href="index.com"

    或者这个?:

    href="www.html"

    或者?:

    href="www.index.com.html"

    浏览器不知道你的意思,它只知道你告诉它的内容。没有前缀,它将按照当前HTTP地址的标准进行操作。前缀是告诉它需要从一个全新的根地址开始的。

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

    href="//www.google.com"

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

    回复
    0
  • 取消回复