根据不同域名显示不同内容的实现方法
根据不同域名显示不同内容的实现方法
最近在做之前的网站维护时,遇到一个问题:某个项目审核的时候,需要检查所有注册的域名,所有注册的网站都必须能打开,对应不同的网站注册号也要挂在网站底部。 .这些注册号不同的网站域名实际上绑定在一个阿里云虚拟空间中,但是阿里云的虚拟主机不能绑定到子目录。为了省钱,我不能为每个域名购买一个虚拟空间。主持人。
解决这个问题的核心逻辑其实就是先判断当前访问的是什么域名,然后再添加一个判断,输出并显示不同域名对应的内容,可以通过两种方法实现:php和JS。
一、PHP实现不同的域名显示不同的内容
- <?
- //创建域名和对应的数组
- $domain_route = 数组(
- 'www.300ntk.com' => 'a.php',
- 'www.300ntk1.com' => 'b.php',
- );
- //获取当前域名,如果无效,使用$_SERVER['HTTP_HOST']获取当前域名
- $domain = $_SERVER< span class="pun">['SERVER_NAME'];
- //解析数组
- $target_url = $domain_route< span class="pun">[$domain];
- //输出
- header("location:{$target_url}" );
- ?>
通过将上面的代码创建为index.php作为默认主页,可以根据不同的域名显示不同的内容,但是稍微麻烦一点,就是需要创建额外的页面进行显示,比如a.php和上面的b.php。两个文件。以上代码适用于更复杂的需求,需要为不同的网站展示完全不同的内容,比如用一个虚拟主机搭建多个网站。
至于我只想显示不同的申请编号,这有点复杂。毕竟,我只需要在底部有不同的备案号,所以我稍微改了一下:
1、上面数组中的值本来就是要调用的文件,所以我直接把对应记录号的内容改了; 2.在需要显示记录号的地方使用
- echo $target_url
直接输出显示。
这样就不需要添加额外的文件,简单、方便、快捷。
二、利用JS实现不同域名显示不同内容
除了上面的PHP方法,还可以用JS来实现。逻辑是一样的,先判断当前访问的域名,然后根据不同的域名输出不同的内容。
JS代码如下:
- <p>©2020 All rights reserved <a href="https://beian.miit.gov.cn" id="beian">备案号</a></p>
<script>
var domain = window.location.host;
if (domain == "www.300ntk.com" || domain == "300ntk.com") {
document.getElementById("beian").innerHTML = "备案号1";
}
else if (domain == "www.300ntk2.com" || domain == "300ntk2.com") {
document.getElementById("beian").innerHTML = "备案号2";
}
</script>
上面代码中有两点需要注意:
1.第一行其实可以删除。只需要在需要显示记录号的a标签中加上"id="beian"即可,ID号的值也可以改,记得在JS代码里改成一样的。
2、如果有其他注册号,直接加else if即可,但如果每个注册号有其他域名,就在域名后定期加。
摘要
两种实现方式都比较简单,原理基本相同,只是操作和效果上会有一点点区别。
1.如果用PHP实现,如果使用CMS等框架系统,需要在系统开发的基础上添加代码,可能会稍微复杂一些。但是PHP的实现也比较完善。在前台访问的时候可以直接通过HTML代码显示出来,这种方式几乎是找不到的。
2. JS实现在操作上稍微简单一些。无论是手写页面还是系统框架,都是一段JS代码,前端代写的代码不必移到后端。但是JS实现的缺点是只能绕过肉眼,如果用爬虫爬取页面的代码,还是一样。
根据不同域名显示不同内容的实现方法:等您坐沙发呢!