为什么在URL的末尾需要斜杠?

时间:2009-09-21 21:26:02

标签: django apache url webserver

这些网址在网址末尾是否有差异?

https://drchrono.com/about_us
https://drchrono.com/about_us/

Web框架和Web服务器(例如Apache,Nginx,Django)是否以不同方式处理这些请求?

5 个答案:

答案 0 :(得分:25)

当涉及到相对URL时,浏览器会以不同方式对待它们。页面位于:

http://server/path

使用相对链接,如:

<a href='other'>

将解析该链接:

http://server/other

path替换为other。如果起始网址是:

http://server/path/

然后解决的链接将是:

http://server/path/other

如果path是目录而不是文件,大多数Web服务器将自动从以下位置重定向:

http://server/path

为:

http://server/path/

因为这几乎可以肯定你的意思。

答案 1 :(得分:5)

在没有正斜杠的Django URL中,会自动附加正斜杠。这是Django开发人员的偏好,而不是网络的硬编码规则(我认为它实际上是Django中的一个设置)。

答案 2 :(得分:3)

/是分离字符。

来自RFC

  

某些URL方案(例如ftp,http和文件方案)包含      可被视为等级的名称;的组成部分      层次结构由“/".

分隔

最后/表示网址中可能有更多内容。

答案 3 :(得分:1)

它们作为不同的请求处理,尽管它们可能在最后匹配相同的资源/处理程序/例程,并以相同的方式处理。

由于/应该是类似于某个目录的东西,所有相对链接都将位于/ ie previous / target / something ...而没有的那些将使相对链接处于同一级别之前/东西。

答案 4 :(得分:1)

请注意,搜索引擎将这些视图视为2个不同的页面。因此伤害了你的seo。