Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在两种不同的情况下,尾随斜杠在URL中扮演的实际角色是什么?_Url_Url Rewriting_Url Routing_Anchor_Trailing Slash - Fatal编程技术网

在两种不同的情况下,尾随斜杠在URL中扮演的实际角色是什么?

在两种不同的情况下,尾随斜杠在URL中扮演的实际角色是什么?,url,url-rewriting,url-routing,anchor,trailing-slash,Url,Url Rewriting,Url Routing,Anchor,Trailing Slash,考虑第一种情况: 如果我输入URLhttps://www.w3schools.com/html进入我的web浏览器的地址栏,它会自动更改为URLhttps://www.w3schools.com/html/后面有一个斜杠,然后加载相关网页 为什么以及如何将尾部斜杠添加到我在web浏览器地址栏中输入的URL?谁负责将尾部斜杠自动添加到我先前输入的URL 考虑第二种情况: 考虑以下锚定标签 这个很好用。然后,我从同一个URL中删除了尾随斜杠,并尝试在锚定标记 为什么会这样 为什么它没有被重定向到

考虑第一种情况:

如果我输入URL
https://www.w3schools.com/html
进入我的web浏览器的地址栏,它会自动更改为URL
https://www.w3schools.com/html/
后面有一个斜杠,然后加载相关网页

为什么以及如何将尾部斜杠添加到我在web浏览器地址栏中输入的URL?谁负责将尾部斜杠自动添加到我先前输入的URL

考虑第二种情况:

考虑以下锚定标签

这个很好用。然后,我从同一个URL中删除了尾随斜杠,并尝试在锚定标记

为什么会这样

为什么它没有被重定向到锚定标记的
属性中提到的URL

虽然,我不知道自动将尾随斜杠添加到输入web浏览器地址栏的URL中的原因,但我的问题是,为什么在第二种情况下,即在锚定标记
中,在
href
属性中包含一个不包含尾随斜杠的URL时,同一个funda不起作用

请有人帮助我,用简单、清晰、易懂的语言回答我所有的疑问

谢谢。

这两个URL:

是规范上不同的URL。这意味着服务器和客户端应将它们视为两个不同的URL。任何客户端都不应该自动添加或删除斜杠,因为它们可能返回完全不同的内容

但是,许多服务器和服务器框架会自动添加斜杠。他们通过HTTP重定向来实现这一点

例如,如果您运行普通apache,并且从某种目录提供
index.html
,默认情况下,如果没有提供,apache将重定向到带有斜杠的url

这不是HTTP所必需的,也不是服务器或客户端工作所必需的。严格来说,这是服务器实现者的选择。

你说的“不工作”是什么意思?当单击不带尾随斜杠的链接时,页面应打开,并以相同的方式重定向。我对它进行了测试,结果正如预期的那样。
 <a href="https://www.w3schools.com/html/">Visit our HTML tutorial</a> 
 <a href="https://www.w3schools.com/html">Visit our HTML tutorial</a>