gpt4 book ai didi

apache - RewriteEngine 产生递归,尽管指定了 NS (nosubreq) - 为什么?

转载 作者:可可西里 更新时间:2023-11-01 16:34:59 25 4
gpt4 key购买 nike

我有这个重写规则:

RewriteRule ^authenticate   /id/authenticate.php [NS,QSA]

我收到这个错误:

[Sat Jul 23 05:12:37 2011] [error] [client 62.178.15.161] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: https://2x.to/id/authenticate

我认为 NS 标志应该可以防止这种情况发生。

它是否由于某种原因不起作用,是我没有正确应用它还是我误解了它的用途?

有没有另一种方法可以在不重命名文件的情况下使这个重写规则“起作用”?

编辑:

我将 RewriteRule 改编为:

RewriteRule ^authenticate$  /id/authenticate.php [QSA]

效果很好。但是我仍然对为什么 NS 不起作用很感兴趣。

最佳答案

你可能想要 [L] 在这里,而不是 [NS] -- [NS] 专门用于抑制一些不寻常的重写Apache 将向自身发出“内部”请求的情况,例如在处理服务器端包含时。

您可能还需要使规则更具体——根据此规则的位置,^authenticate 可能匹配 /id/authenticate.php。如果是这种情况,您将需要添加一个较早的规则来“排除”该文件的异常(exception)情况,如下所示:

RewriteRule ^/id/authenticate\.php$ - [L]

关于apache - RewriteEngine 产生递归,尽管指定了 NS (nosubreq) - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6797623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com