我的项目(使用复杂的框架/ cms)确实基于PHP,.htaccess,JS等重定向...并且Iam努力寻找导致特定重定向的人。虽然我看到使用常用工具(RedirectChecker,Browser-Dev-Tools ......)重定向,但我看不出是谁/是什么导致它。有没有一般的方法来找出例如。
注意:我可以访问服务器。
答案 0 :(得分:0)
您无法从客户端检查server-sided redirection
是如何触发的。但是,您可以执行的操作是,每次重定向时都可以添加自定义HTTP Headers
。
PHP中的示例:
header('HTTP/1.1 301 Moved Permanently by PHP script');
应该出现在Firebug或其他检查工具中。
替代方案(尚未尝试过)是:
header('HTTP/1.1 301 Moved Permanently');
header('Redirected from index.php');
答案 1 :(得分:0)
对于.htaccess重定向,您可以启用重写登录RewriteLog。对于php重写你可以做的是强制输出到浏览器(参见flush
和ob_flush
)。框架尝试设置标头时会生成错误,例如位置标题。
您还可以查看override_function
来覆盖标头功能,检查是否发送了位置标头并将其记录到文件或抛出异常或错误。您可以使用debug_backtrace
获取跟踪。您将PECL apd >= 0.2
使用override_function
答案 2 :(得分:0)
一个激进的(但在某种意义上说是最正确的)处理方法是用header()
替换项目中出现的所有my_header()
并写my_header
以便它记录它参数并将它们进一步传递给php header
。如果您的FW使用名称空间,您只需将自己的header
添加到NS。
如果你不能改变FW代码,你需要运行套件或排序来挂钩全局函数。