用于确定用户是否301重定向到我的站点的PHP代码

时间:2012-02-29 09:28:20

标签: php mod-rewrite url-rewriting http-headers http-status-code-301

PHP是否可以知道用户是否已被重定向到我的网站?

所以在 myoldsite.com 中,我在.htaccess文件中有一个301重定向到 mynewsite.com

我可以在 mynewsite.com 中放置一些PHP代码来识别用户何时被重定向?如果是这种情况,我只需要显示一条特定的消息。

非常感谢这里的任何指示: - )

1 个答案:

答案 0 :(得分:2)

我相信对于301重定向,HTTP_REFERER字段将包含原始引用:

  • 用户在地址栏中输入oldsite.com,301重定向到newsite.com
    • referer =“”
  • 用户正在访问3rdparty.com,点击指向oldsite.com的链接,301重定向到newsite.com
    • referer =“3rdparty.com”

这种行为在301重定向中有一定意义。

解决方案:我认为您应该在301响应中添加查询字符串参数,例如ref=oldsite,并在新网站上查看其值。

如果您担心URL中有查询字符串参数,可以告诉搜索引擎忽略特定的查询字符串参数。该程序因搜索引擎而异。显然,有一个适用于所有主要搜索引擎的技巧:<link rel="canonical">标记。例子:

  • http://newsite.com/?ref=oldsite
    • http://newsite.com/
  • http://newsite.com/?ref=oldsite&page=main
  • http://newsite.com/?page=main&ref=oldsite
    • http://newsite.com/?page=main