通常,网站有一个菜单栏,其中包含指向网站不同页面的链接——主页、页面 A、页面 B 等。
假设您有一个地址为http://www.example.com的网站。99% 当有人在他们的浏览器中键入该 URL 时,他们会被定向到由“主页”表示的页面。它通常具有 index[.html|.php] 的可选扩展名(例如http://www.example.com/index.html)。但是,在某些用例中,根据用户要从哪里访问您的网站,您希望将他们重定向到不同的页面。例如,如果您的网站上有一个广告在宣传您的网页,您可能希望将它们重定向到:http ://www.example.com/camefromad.html ,它看起来与您的正常“主页”页面几乎相同,但可能会添加一些文字,说明它们来自广告所在的页面。
我的问题是:
有没有办法,在用户从被推荐的页面登陆网站后,使用 PHP 来确保单击“主页”链接将始终转到http://www.example.com/camefromad.html 如果用户一开始就降落在那里?我要避免的是用户来到http://www.example.com/camefromad.html然后单击菜单栏中的“主页”并最终进入默认主页永远无法返回http://www.example.com/camefromad.html页面(我没有在公共菜单中启用该登录页面,因为我不希望普通用户能够去那里)。
这是我第一次使用 PHP,我正在尝试使用会话状态等将它拼凑在一起,但我还没有完全完成这个难题。这是我在index.php中的内容(这是代表“主页”链接的文件:
<?
session_start();
$_SESSION['amSet']= 0;
?>
<?
if ($_SESSION['amSet'] == 0) {
if (!empty($_SERVER['HTTP_REFERER'])) {
$referrer = $_SERVER['HTTP_REFERER'];
$_SESSION['amSet'] = 1;
}
}
if (preg_match("/other.example.net/",$referrer)) {
header('Location: http://example.com/camefromad.html');
}
?>
基本上,我的想法是在用户访问该站点时设置一个变量,以便将引用者变量设置为该引用站点。但是,如果用户点击网站本身的链接,我不希望引用者重置。我希望它保持用户第一次访问该站点时的状态,因此如果用户单击“主页”链接,它将始终将用户引至相应的页面。显然,我上面的代码不起作用。