根据引荐网址重定向访问者

时间:2013-12-20 01:03:59

标签: php redirect

我想将访问者重定向到我网站上的一个页面,如果他们来自某个网​​址而另一个页面来自某个网​​页。

<?
$referer = $_SERVER['HTTP_REFERER'];
if ( $referer != "http://URL1" ) {
  header('Location: page1');
  exit;
 } else {
  header('Location: page2');
 }
?>

无论我在网页上找到什么推荐人,都会转到第1页,而不会转到第2页。我在index.php文件中使用了此代码,因此它也是访问者指向的第一页。

2 个答案:

答案 0 :(得分:1)

更新:好的,所以从讨论开始,您的代码无法正常工作的原因是您使用“now-www”网址检查引用字符串,而实际的referer字符串在url中有“www”。请确保使用完全引用字符串。否则,如果您根据引用者的hostname进行重定向,则可以使用下面更新的答案。

<?php
$referer = str_replace("www.", "", parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST));
switch($referer) {
  case "johnchow.com":
    header("Location: page1");
    break;
  case "domain2.com":
    header("Location: page2");
    break;
  default:
    header("Location: page3");
}
exit;

答案 1 :(得分:0)

首先将其更改为

if ( $referer != "http://URL1" || $referer != "http://URL2" )

其次,page1和page2可能会出错,因为它们无效。包括路径和扩展名。例如:

header('Location: http://www.yourlocation/page1.php')

看起来错误已经澄清......