我有5个域名重定向到一个主机。我在网站上使用Joomla有横幅的问题。我想,如果有人从domain1重定向的托管网站显示横幅domain1, domain2, banner2等。
在Joomla或Core PHP中最好的方法是什么?
你需要在PHP的$_SERVER
超全局变量中使用'HTTP_REFERER'
。
基本上,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
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(); ?>">
也许是这样的?