【发布时间】:2011-04-05 01:42:15
【问题描述】:
我想要做的是使用 PHP 从网站 A 重定向到网站 B(两者都是不同的域),但我希望将 HTTP 标头中的引用者设置为网站 A(页面执行重定向)。因此,也就是说,网站 B 将网站 A 视为推荐人。
【问题讨论】:
标签: php
我想要做的是使用 PHP 从网站 A 重定向到网站 B(两者都是不同的域),但我希望将 HTTP 标头中的引用者设置为网站 A(页面执行重定向)。因此,也就是说,网站 B 将网站 A 视为推荐人。
【问题讨论】:
标签: php
您可以在您的站点 A 上使用 <meta http-equiv="refresh" content="1;url=http://siteb.net"> 之类的内容。
【讨论】:
我很确定发送引荐来源网址最终取决于网络浏览器,而不是 PHP。
不过,您可能可以通过$_GET 发送地址。
编辑:您将无法更改推荐人(误读帖子,derp)。
【讨论】:
$_GET发送地址?那应该如何工作?
header( "Location: something.php?ref=" . $_SERVER['REQUEST_URI'] );
我已经使用 localhost 和一个虚拟脚本进行了检查。即使在重定向时,浏览器也会在 HTTP 中发送引用。
为了测试这一点,我创建了一个名为 testRefererRedirect.php 的脚本:
<?php
if($_GET['a']){
if($_SERVER['HTTPS'] && $_SERVER['HTTPS'] != 'off'){
echo $_SERVER['HTTP_REFERER'];
}else{
header('Location: https://localhost/testrefererredirect.php?a=1');
}
}else{
echo '<a href="testrefererredirect.php?a=1">test</a>';
}
为了模拟跨域,我在本地服务器上使用了 HTTP 和 HTTPS。
第一次加载时,页面将显示一个链接:我将单击此链接以允许浏览器在标题中发送引用。接下来,因为我最初在 HTTP 中加载页面,所以将调用 header 函数。最后,用于第 2 步的 HTTP 引用标头出现在第 3 步中。
如果您在网站 A 上进行重定向,您可以安全地在网站 B 上使用 $_SERVER['HTTP_REFERER'] 来获取网站 A 的引用信息。
【讨论】: