重定向循环(HTTP_REFERER)

时间:2013-07-29 07:06:37

标签: php redirect

网站( wwww.fake-web-site.com )将其链接重定向到我的网站( www.real-web-site.com )。只有第一页不同。

我编写了一个代码,将来自虚假网站的所有人重定向到 google.com

if (strpos($_SERVER['HTTP_REFERER'],'fake-web-site.com') !== false)
  header('Location: http://www.google.com/search?q=real-web-site.com');

适用于Chrome浏览器,如果有人打开虚假网站并点击链接到我的网站的链接,它将被重定向到 google.com 。之后,他可以从 google.com 打开我的网站。

在Firefox中,如果有人打开虚假网站并点击链接到我的网站的链接,它将被重定向到 google.com 之后,如果他点击 google.com 中的 real-web-site.com ,他会再次重定向到 google.com !< / p>

我认为这与Firefox缓存机制有关。有人可以提出建议吗?

1 个答案:

答案 0 :(得分:0)

浏览器缓存重定向。取决于HTTP响应状态:

如果状态是 301 Moved Permanently ,那么浏览器应该(并且可能)将其缓存。

如果状态为 302 Found ,那么浏览器不应该也不会对其进行缓存。

还有其他东西由浏览器决定。从您的代码中,您似乎只是使用 200 OK 进行响应。

您可以通过执行以下操作在PHP中设置响应标头:

header("HTTP/1.0 302 Found");

除非你正在使用输出缓冲,否则必须在 任何其他正文或标题输出之前完成。

相关问题