当会话过期时,Apache或PHP执行一个奇怪的重定向


Apache or PHP performs a weird redirect when session has expired

我最近开始为我工作的一家公司开发OsCommerce 2.3.1构建的系统。他们开始在错误日志中出现一些奇怪的错误。我们不知道这些错误是什么时候开始的,但它们肯定与PHP或Apache的会话处理有关,因为在我们的代码中没有在其他地方进行重定向。

每当我的会话已经过期,我试图登录,我被重定向到"example.com/aW5kZXgucGhw",例如,这不是一个有效的页面,并返回一个404。

怎么会这样?它是否试图将会话密钥附加到URL?

这样的重定向不是标准的osCommerce重定向。会话ID比aW5kZXgucGhw(32个字符)长得多,所以更有可能它来自其他地方,加上会话ID无论何时在标准osCommerce url是example.com/page.php?osCsid='5abdl9l9tu5ndmcclvrt8267m2 '类似的东西。

在osCommerce函数中包含/functions/general.php中的tep_redirect($url)负责重定向。

我建议你写一些代码,记录传递给这个函数的URL参数,加上一个调试回溯,以确定这个函数被调用的位置。

如果文件编写代码生成的日志值为"url"类似于此url example.com/aW5kZXgucGhw,那么您需要查看调试回溯日志部分,以便获得导致此重定向调用的代码部分