php - 在 301 重定向之前处理数据?

标签 php mysql redirect http-status-code-301

所以,我一直在研究 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/

相关文章:

php - PHP 中 ES6 模板文字的等价物?

PHP JSON Highcharts 加载数据库结果

具有相同表值的 MySQL 更新

flutter - 如何使图标可点击并将其重定向到 flutter 中的 URL

php - 使用 Facebook PHP SDK 获取 Facebook 广告内容

PHP mySQL - 你能返回一个带有数字索引的关联数组吗?

javascript - 如何让 Google 理解触发 Javascript 的链接?

ruby-on-rails - 条件重定向的最佳方式?

mysql - 使用 INNER JOIN 后搜索 SQL 查询

c++ - 当询问某个值与 null 之间的差异时,mysql 返回 null