我有 5 个域被重定向到一个主机。我在遇到横幅问题的网站上使用 Joomla。我希望如果有人从 domain1 重定向托管站点显示 domain1、domain2 banner2 等的横幅。
无论是在 Joomla 还是 Core PHP 中,最好的方法是什么?
我有 5 个域被重定向到一个主机。我在遇到横幅问题的网站上使用 Joomla。我希望如果有人从 domain1 重定向托管站点显示 domain1、domain2 banner2 等的横幅。
无论是在 Joomla 还是 Core PHP 中,最好的方法是什么?
你需要'HTTP_REFERER'
在 PHP 的$_SERVER
superglobal 中使用。阅读手册以获取更多信息。
基本上,HTTP_REFERER
包含指向您的主机的站点的 URI。不能保证实际包含一个值,但最好不要涉及GET
URL 中发布的变量。注意:您必须先解析出域名,然后才能使用它。
说明书是这么说的...
将用户代理引向当前页面的页面地址(如果有)。这是由用户代理设置的。不是所有的用户代理都会设置这个,有些提供修改 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(); ?>">
可能是这样的吗?