我有5个域名被重定向到一个托管。我在网站上使用Joomla有横幅问题。我希望如果有人从domain1重定向,托管网站会显示domain1,domain2 banner2等的横幅。
无论是在Joomla还是Core PHP中,最好的方法是什么?
答案 0 :(得分:1)
您需要在PHP的'HTTP_REFERER'
超全局中使用$_SERVER
。 Read 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(); ?>">
这样的事可能吗?