0

我有 5 个域被重定向到一个主机。我在遇到横幅问题的网站上使用 Joomla。我希望如果有人从 domain1 重定向托管站点显示 domain1、domain2 banner2 等的横幅。

无论是在 Joomla 还是 Core PHP 中,最好的方法是什么?

4

2 回答 2

1

你需要'HTTP_REFERER'在 PHP 的$_SERVERsuperglobal 中使用。阅读手册以获取更多信息

基本上,HTTP_REFERER包含指向您的主机的站点的 URI。不能保证实际包含一个值,但最好不要涉及GETURL 中发布的变量。注意:您必须先解析出域名,然后才能使用它。

说明书是这么说的...

将用户代理引向当前页面的页面地址(如果有)。这是由用户代理设置的。不是所有的用户代理都会设置这个,有些提供修改 HTTP_REFERER 作为一个特性的能力。简而言之,它不能真正被信任。

你的代码可能看起来像这样......

function GetBannerForDomain() {
    $url_array = parse_url($_SERVER['HTTP_REFERER']);
    switch (str_replace("www.", "", $url_array['host')) {
        case 'example.com':
            $img_src = 'path/to/banner.png';
        default:
            $img_src = 'path/to/default/banner.png';
    }

    return $img_src;
}

如果您对重定向域有任何控制权,则可以回退到在重定向中使用 GET 变量,就像这样......

http://www.yoursite.com/referer/site1.com
于 2012-12-22T07:22:20.217 回答
0
function getBannerSrc() {
    switch ($_SERVER['HTTP_REFERER']) {
        case 'example.com':
            $img_src = 'path/to/banner.png';
        default:
            $img_src = 'path/to/default/banner.png';
    }

    return $img_src;
}

...然后在您的视图脚本中

<img src="<?php echo getBannerSrc(); ?>">

可能是这样的吗?

于 2012-12-22T07:21:25.007 回答