网站URL地址最后的"/"

最近在做一个网站内容dispatch的东西。然后搭配公司的lb服务。遇到很多坑。发现在网址后面加上/和不加有一些区别。自己瞎搞了半天,总结一下。

/的意义

核心的概念:

  • 最后添加/是查询目录
  • 最后不添加/是查询文件

比如说我们的网站地址www.kami_home.com

  • www.kami_home.com/content 表示默认查询网站根目录下的content文件
  • www.kami_home.com/content/ 表示默认查询网站根目录下的命名为content的子目录。

这里还有几点需要注意:

  • 网站末尾添加/能够加快网站的载入速度(seo优化)
    通过/,浏览器直接在该目录(默认访问目录)下寻找默认的index.html等文件。 如果未添加/,则会
    • 首先,读取根目录下的一个文件(随机,有index可能会显示index)
    • 未找到该文件,则会查找同名的目录。如果存在,则读取其内的默认文件(index)

如果不添加/,则会一直增加一个查询同名文件的过程(当然如果本身意在如此,那就没问题)。这里如果没有/,而且没有找到该文件,服务器会执行301的跳转到带/的目录请求。

  • seo:添加/能够避免重复内容。
  • url解析错误(404 not found错误),添加 /是一个非常良好的习惯。

跳转的情况,在细说一下,如果是POST请求,然后使用未添加的/的url。同时,并没有相关匹配的话,可能会发现服务器catch到的请求变成了GET,同时参数也不见了。
这个就是因为请求被默默的redirect到了带/的情况,同时并没有配置相关的处理方式,比如继续以POST的形式进行转发(POST /check? -> POST /check/?)。

常见的现象:

  • 在浏览器地址栏输入网站地址后,回车会默认添加一个/
  • 有些浏览器会自动隐藏网站末尾的/
  • 有些网站会设置URL重写,自动加上/
  • 有些网站会增加302跳转,到/的版本

你可能感兴趣的:(网站URL地址最后的"/")