多域重定向到单个主机横幅问题

时间:2012-12-22 07:15:45

标签: php joomla cross-domain

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

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

2 个答案:

答案 0 :(得分:1)

您需要在PHP的'HTTP_REFERER'超全局中使用$_SERVERRead the manual for more information

基本上,HTTP_REFERER包含定向到主机的网站的URI。它不能保证实际包含值,但如果不涉及URL中发出的GET变量,这是您最好的选择。注意:您必须先解析域名才能使用它。

手册有这样说......

  

将用户代理引用到的页面地址(如果有)   当前页面。这是由用户代理设置的。并非所有用户代理都会   设置这个,有些提供修改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

答案 1 :(得分: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(); ?>">

这样的事可能吗?