我有一个客户端在使用CDN时遇到了大约500个错误。这些错误表明内部重定向太多,我们的研究证实了这一点。客户端不希望调整其内部重定向,并希望以另一种方式解决此问题。
根据我到目前为止的研究,这似乎是一个硬的上限,不是特定于任何一种类型的web服务器,并已到位,以避免无休止的循环。话虽如此,有没有办法把这个上限提高到20而不是10呢?
示例:
只有示例4提供了一个500错误。在不调整重定向配置或删除CDN的情况下,有什么方法可以避免这种情况吗?(不幸的是,我不能提供更多关于重定向的信息,我很抱歉)。
发布于 2014-09-22 17:34:22
不幸的是,是HTTP客户端决定了它愿意遵循多少重定向。您所看到的限制源于最初在RFC 2068,sec 10.3中给出的建议,并在RFC 7231,sec 6.4中再次引用。
本规范的早期版本建议最多重定向五个方向.内容开发人员需要意识到,一些客户端可能实现这样一个固定的限制。
在这个答案中可以找到一个粗略的估计,说明有多少重定向会达到浏览器的极限。大多数浏览器都允许配置这个限制(例如,火狐公开了network.http.redirection-limit设置)。
那么,Webservers则是另一回事了:看来Apache有MaxRedirects选项,用于v2.0.45和2.1之间的RewriteOptions指令。LimitInternalRecursion设置似乎已经接管了这一设置。我一直无法为nginx找到一个同等的设置。
最后请注意:如果您确实看到这么多内部重定向(即仅在重写引擎中执行的重定向,并且不会立即导致真正的HTTP重定向),那么这可能是修改重写规则的有力指示。
发布于 2014-09-22 17:58:48
您需要给客户留下深刻印象,您必须修复需要无数内部重定向的糟糕的应用程序逻辑,而不是试图更改地球上的每个浏览器。
编辑**
显然,Apache可以使用RewriteOptions MaxRedirects选项更改服务器端,但我认为浏览器仍然存在问题,因为浏览器经常建议用户停止重定向并退出.有时甚至在10次重定向之前。
https://stackoverflow.com/questions/25977377
复制相似问题