当后续的重定向路径重复之前的路径的时候,重定向循环就产生了。换句话说,就是陷入了无限循环当中,不会有一个最终的页面返回。
大多数情况下,这属于服务器端错误。如果服务器检测不到,就会返回 500 Internal Server Error。假如你在修改了服务器配置不久就出现了这个问题,八成是遇到了重定向循环。
有时候,服务器端无法对其进行检测:重定向循环发生于多台服务器之间,对于每一台服务器来说,都无法获得一个全景图。在这种情况下,浏览器会负责进行检测,然后返回错误信息。Firefox 会呈现如下信息:
Firefox 检测到该服务器正在将指向此网址的请求无限循环重定向。
而 Chrome 则会呈现如下信息:
该网页将你重定向的次数过多。
无论哪个场景,用户对此都无能为力(除非客户端发生突变,比如说缓存或者 Cookie 不匹配)。
避免重定向循环非常重要,因为它会完全毁掉用户的体验。