ERR_TOO_MANY_REDIRECTS htaccess

时间:2017-07-28 07:40:41

标签: .htaccess mod-rewrite nginx

有人能解释一下这个.htaccess代码在做什么吗?

 RewriteRule ([0-9]+)/([^t]{1}[A-Za-z0-9_-]{0,})\.([^s]{1}[A-Za-z0-9]+)$ ../items/go.php?u=$1/$2.$3

我有一个文件夹: mywebsite.com/download/folder1 / ,上层 mywebsite.com/download / 文件夹中的.htaccess文件包含上面的代码。< / p>

当我直接访问文件 mywebsite.com/download/folder1/file.mp4 时,它会返回错误:

  

mywebsite.com重定向了你太多次了。尝试清除你的   饼干。 ERR_TOO_MANY_REDIRECTS

我尝试清除浏览器Cookie,但问题仍然存在。 当我注释掉上面的htaccess行时,这个问题就解决了。

1 个答案:

答案 0 :(得分:0)

此规则似乎正在寻找由以下内容组成的特定模式:

<numbers>/<alphanumeric string not starting with t and with other conditions applied>.<alphanumeric string not starting with s>

然后将用户浏览器重定向到go.php,并将解析后的文件名作为文件参数传递。

ERR_TOO_MANY_REDIRECTS可能是由于无限重定向循环造成的。在不知道其他RewriteRule语句存在的情况下,很难缩小确切原因。您可以通过查看重写的输出是否与任何其他RewriteRule条件匹配来进一步缩小范围。

通常,规则看起来对给定的示例输入持怀疑态度。如果这是本土的,我建议完全重写它,因为它的当前形式将为用户生成的数据提供意外的输出,这可能导致go.php脚本中存在的任何安全漏洞被轻易利用/暴露。