检测域名变更?

时间:2011-06-19 16:45:40

标签: php dns hosting

是否可以检测网络转发的来源?

例如, Domain A重定向到域名B拥有PHP托管的Domain B

基本上我想要以下内容:

if ($was_redirected_from_domain_a) { ... }

4 个答案:

答案 0 :(得分:3)

正如@MoarCodePlz和@Christopher Armstrong指出的那样,$_SERVER["HTTP_REFERER"]就是解决方案。

但是,在您的特定情况下,会发生两个重定向:

http://fhc.quickmediasolutions.com/image/-1457172086.png

这样,原始引荐来源信息就会丢失。您需要禁用第二个重定向,并在my-art-gallery.co.uk的索引页面中运行PHP。

看到phpinfo()输出后更新:

$_SERVER["HTTP_REFER"]确实完全不存在。

我怀疑罪魁祸首是这个配置设置:

suhosin.server.strip = On 

您的托管公司正在运行Suhosin PHP补丁,该补丁允许从PHP页面中删除某些数据以增强安全性。您可能需要让他们激活HTTP_REFERER。

唯一的另一种方法是将域A重定向到类似

的内容
domainb.co.uk/index.php?camefrom=domainA

然后,您可以通过$_GET["camefrom"]获取domainA参数 - 如果托管服务提供商的控制面板允许这种重定向。

答案 1 :(得分:1)

您需要查看的内容称为页面的网址引荐来源。 url referrer是当前用户从中进入网站的URL。但要小心,如果用户打开一个标签并只是输入网址,则网址引用将不存在。

应该能够使用以下内容找到网址引荐来源:

$myVar = $_SERVER['HTTP_REFERER'];

答案 2 :(得分:1)

正如Pekka所说,这取决于用户的转发方式。尝试检查$ _SERVER ['http_referrer']值:

if ($_SERVER['HTTP_REFERER'] == 'mydomain.com/mypage'){
    echo 'Came from mydomain';
}

答案 3 :(得分:0)

$_SERVER["HTTP_REFERER"]不是一个可靠的解决方案。有不同的情况,它不起作用。

HTTP_REFERER不包含重定向的网页的网址,而是包含用户点击的网页的网址。

E.g。在页面上,example.com是t.co/somelink的链接,重定向到yoursite.com。 $_SERVER["HTTP_REFER"]将包含http://example.com,并且无法知道您的访问者是否通过Twitter短网址重定向到您的网站上。

了解用户来自您的Twitter链接的唯一方法是添加$_GET参数,就像已经提出的那样:让链接t.co/somelink重定向到yoursite.com/?camefrom=twitter