所以,我一直在研究 PHP 链接缩短器(我知道,这正是世界所需要的)。基本上,当页面加载时,php 确定它需要去哪里并发送 301 header 来重定向浏览器,就像这样......
Header( "HTTP/1.1 301 Moved Permanently" );
header("Location: http://newsite.com";
现在,我尝试向重定向添加一些跟踪,并在重定向发生之前将一些自定义分析数据插入 MySQL 表中。如果我不指定重定向类型而只使用:
header("Location: http://newsite.com";
但是,当然,一旦您添加了 301 header ,就不会再处理任何其他内容。实际上,在第一个请求中,它会将数据发送到 MySQL,但在任何后续请求中,都不会与数据库进行通信。
我认为这是一个浏览器缓存问题,一旦看到 301,它就决定没有理由解析 future 请求的任何内容。但是,有人知道是否有办法解决这个问题吗?
为了 SEO 目的,我真的很想将其保留为 301(我相信如果您不指定它会默认发送 404?)。
我考虑过使用 .htaccess 在页面前面添加一个文件来执行 MySQL 工作,但是使用 301,这不会也会被忽略吗?
无论如何,我不确定除了使用不同类型的重定向之外是否还有其他解决方案,但我已经准备好放弃了。因此,任何建议将不胜感激。谢谢!
最佳答案
尝试在第一个 header 语句之前添加以下内容;这应该可以防止在典型页面中进行缓存,但我不确定它是否适用于重定向:
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Thu, 1 Jan 1970 00:00:00 GMT");
关于php - 在 301 重定向之前处理数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2954799/