根据域名更改网页标题的脚本

4

有没有一种简单的方法可以根据域名交换文件URL?

我有acme.com和acme.co.uk站点域名,它们需要不同的页眉图形,但内容是相同的。为了不管理两套文件和CMS,是否有JS / php脚本或其他方法可以根据访问的域名动态更改页眉图形URL? 网站是基本的XHTML和CSS。

3个回答

6

使用PHP

使用 $_SERVER['HTTP_HOST'] 获取您的域名,然后使用 switch 语句更改图像变量。

<?php
switch($_SERVER['HTTP_HOST']) {
    case 'acme.com':
    case 'www.acme.com':
        $image = "acmecom.jpg"
    break;
    case 'acme.co.uk':
    case 'www.acme.co.uk':
        $image = "acmecouk.jpg"
    break;
    default:
        $image = "default.jpg"
    break;
}
?>

如果你在acme.com之前使用www,则需要相应地将地址更改为“www.acme.com”。对于.co.uk也是如此。

在您的标题图像中,您可以像这样回显图像路径:

<img src="path/to/folder<?php echo $image;?>" alt="header-image" />


谢谢你的代码,Tim。我会试一下,只是想确认一下这是 PHP 吗? - Wes79
最好也能处理www前缀。 - Your Common Sense
@Wes79,这是PHP。请查看$_SERVER变量,网址为:http://php.net/manual/en/reserved.variables.server.php - David Thomas
我添加了检查www的功能。是的,这是PHP。 - Tim

2

因为我无法忍受Tim的编码风格...

<?
$host = preg_replace('~^www\.~','',$_SERVER['HTTP_HOST']);
$headerpic = basename($host).".jpg";
if (!is_readable($_SERVER['DOCUMENT_ROOT'])."/images/header/".$filename) {
  $headerpic = "default.jpg"
}
?>
<img src="/images/header/<?=$headerpic?>">

谢谢您的帮助,我将php放在php测试页面的body标签上方,将图像标签放在body标签内并更正了路径,但似乎只创建了一个空白框架集,我还没有能够让它工作。我认为.co.uk地址重定向到托管在.com地址上的站点可能意味着php以任何方式都看到相同的域名:(我的主机可以添加元标记作为重定向的一部分,元标记是否可以用于更改.co.uk图像,我之前见过类似的东西吗? - Wes79
@Wes79 首先,您必须通过回显它来检查 $_SERVER['HTTP_HOST'] 变量,以确保它不反映实际请求的域。如果没有,您可以使用 JavaScript 读取元标记属性。 - Your Common Sense

1

你可以使用 PHP 的 if 语句来实现这个功能。

http://php.net/manual/zh/reserved.variables.server.php 在这里,$_SERVER 变量会非常有用。

然后,你只需要打印/返回你想要的图像路径即可。

我也可以给你一个完整的示例,但是自己尝试一下,这非常值得。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接