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

Dan*_*nos 8 apache django url webserver

这些URL之间是否有关于在URL末尾添加斜杠的区别?

https://drchrono.com/about_us
https://drchrono.com/about_us/
Run Code Online (Sandbox Code Playgroud)

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

Ric*_*dle 27

当涉及到相对URL时,浏览器会以不同方式对待它们.一页:

http://server/path
Run Code Online (Sandbox Code Playgroud)

有一个相对链接,如:

<a href='other'>
Run Code Online (Sandbox Code Playgroud)

将解决该链接:

http://server/other
Run Code Online (Sandbox Code Playgroud)

替换pathother.如果起始网址是:

http://server/path/
Run Code Online (Sandbox Code Playgroud)

然后解决的链接将是:

http://server/path/other
Run Code Online (Sandbox Code Playgroud)

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

http://server/path
Run Code Online (Sandbox Code Playgroud)

至:

http://server/path/
Run Code Online (Sandbox Code Playgroud)

因为那几乎可以肯定你的意思.

  • 因为自动重定向,如果您使用尾部斜杠编写链接,您将获得最小但明显的页面加载速度.IIRC,apache文档推荐这个. (2认同)

Kai*_*Kai 5

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

  • APPEND_SLASH = True (4认同)