缺少http(s)前缀的Href链接
P粉329425839
2023-08-22 21:56:49
<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>
您可以在路径前面使用
//
来省略协议。这里是一个示例:通过使用
//
,您可以告诉浏览器这实际上是一个新的(完整的)链接,而不是相对于当前链接的相对链接。这是可能的,而且你现在正在做。它只是不会做你想要的事情。
考虑一下当你链接到这个时,浏览器会做什么:
那么当你链接到这个时,它会做什么?:
或者这个?:
或者?:
浏览器不知道你的意思,它只知道你告诉它的内容。没有前缀,它将按照当前HTTP地址的标准进行操作。前缀是告诉它需要从一个全新的根地址开始的。
请注意,你不需要
http:
部分,你可以这样做:浏览器将使用当前的协议(
http
,https
等),但//
告诉它这是一个新的根地址。