经常看到一些网站点击外链跳转到其它网站上的时候都会有一个跳转提示页面,这样既能挽留访客不点击外链,也能让访客知道该链接不属于该网站,谨慎访问,更重要的一点是可以在这个上面推广一下东西,所以我个人建议还是还有必要设置这个模块的。本方法无需插件,用代码即可实现。
在网站根目录新建一个名称为GO的文件夹,并新建一个index.php文件,将以下代码复制到index.php里面保存即可。
<?php
// 将这里的域名(顶级)改为自己的
$myDomain = 'www.bailuze.com';
// 这里用正则提取 $_SERVER["QUERY_STRING"] 而不是直接 get url
// 是因为如果链接中自身带有 GET 参数则会导致获取不完整
preg_match('/url=(.*)/i', $_SERVER["QUERY_STRING"], $jumpUrl);
// 如果没获取到跳转链接,直接跳回首页
if(!isset($jumpUrl[1])) {
header("location:/");
exit();
}
$jumpUrl = $jumpUrl[1];
// 判断是否包含 http:// 头,如果没有则加上
preg_match('/(http|https):\/\//', $jumpUrl, $matches);
$url = $matches? $jumpUrl: 'http://'. $jumpUrl;
// 判断网址是否完整
preg_match('/[\w-]*\.[\w-]*/i', $url, $matche);
// 是否需要给出跳转提示
$echoTips = false;
if($matche){
// 如果是本站的链接,不展示动画直接跳转
if(isMyDomain($url, $myDomain)) {
header("location:{$url}");
exit(); // 后续操作不再执行
}
$title = '页面加载中,请稍候...';
$fromUrl = isset($_SERVER["HTTP_REFERER"])? $_SERVER["HTTP_REFERER"]: ''; // 获取来源url
// 如果来源和跳转后的地址都不是本站,那么就要给出提示
if(!isMyDomain($fromUrl, $myDomain)) {
$echoTips = true;
}
} else { // 网址参数不完整
$url = '/';
$title = '参数错误,正在返回首页...';
}
/**
* 判断是不是自己的域名
* @param $domain 要进行判断的域名
* @param $my 自己的域名
* @return 对比结果
*/
function isMyDomain($domain, $my) {
preg_match('/([^\?]*)/i', $domain, $match);
if(isset($match[1])) $domain = $match[1];
preg_match('/([\w-]*\.[\w-]*)\/.*/i', $domain.'/', $match);
if(isset($match[1]) && $match[1] == $my) return true;
return false;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>网址链接跳转安全提醒 _ 鹿泽笔记</title>
<link href="favicon.ico" rel="shortcut icon" type="image/x-icon">
<style>
html,body{background: #f5f5f5;font-family: PingFang SC,Hiragino Sans GB,Arial,Microsoft YaHei,Verdana,Roboto,Noto,Helvetica Neue,sans-serif;padding:0;margin:0;}
a{text-decoration:none;}
.urlArea { padding-top:15%;width:450px;margin:auto;word-break: break-all; }
.urlArea .main { background:#fff;padding:24px;border-radius: 10px; box-shadow:5px 9px 17px rgba(102,102,102,.75);}
.urlArea .flex { display:flex;align-items:center; }
.urlArea .btn { display:flex;align-items: center; }
.urlArea .tip { background:#e8eefa;padding:12px;margin-bottom:25px;border-radius:4px; }
.urlArea .urlColor { color:red; }
.urlArea .urlBox { font-size: 14px;color: #222226;line-height: 40px;margin-bottom:20px; }
.urlArea .ico { width:24px;height:24px; }
.urlArea .iosk { color:red; font-size:12px;}
.urlArea .goBtn { white-space: nowrap;font-size: 14px;background-color: #408ffa;color:#ffffff;border: 1px solid #408ffa;display:inline-block;box-sizing: border-box;padding:6px 18px;border-radius: 18px;margin-left:24px; }
.urlArea .icoTxt { font-size: 16px;font-weight: 600;color: #222226;line-height: 22px;margin-left:12px;overflow: hidden;text-overflow:ellipsis;white-space: nowrap; }
@media (max-width: 480px){
.urlArea { padding-top:15%;width:94%; }
}
</style>
</head>
<body>
<div class="urlArea">
<div class="main">
<div class="flex tip">
<img class="ico" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADWUlEQVRoQ+2YvWsUQRiH33fmOMQiRQor7RQSweB9KAQEg1iYKFaZnJJ/wcTOMhLs7Ez8FwLebikasTGCoJDcHSoYQbHRyiKFhajczCu3SS73sbfzsXNJDnLV3s4y83vm3X12dhAG/IcDnh+OAHpVkITISvg2DYyQjwyVcXGt3o9q960CdZELAWC6ERoRn/CgentgAGimOCVJPmsNzJFfx2DjuW8I7xWg+xMZ9enXRwIaaQ2LgJ/Z2aFzvm8l7wBypjBPpB7FzTQiu8uDypLPKngFIDE+rODPFwIYjgUA2GJw7AyGb7d8QXgFkCK/TEB3ksIh4GMeVucOHQCV8qNKwQcCymgA6ozBGJarmz4gvFWgLvKrAHTNLBS+yITVSbNrk6/yAhCnTV04X1pNDdBLmzoAX1pNDZCkTS2EB62mAtBpUwvgQaupAEy0qYdIp1VnAFNtGgCk0qozgJ02tRjOWnUCoFJxUiqZuLJEgB+AbCWKTmqWAE4mYXDGp7C8sapD7Wy3BjDVJke8iUH1aZS/lL8hFUXHvX6uWrUGMNUmByxiWK1sAxTyUqnoOBHCQatWADbadAJw0KoVgJwpLBEpo5WkC0CjOohsmQeVeV21dtuNAWy16QwAaKVVYwBbbboCbM+s+WrVCMBEm50lTwcAYKpVLYCpNrsALDXa7XezTQAtgKk2Y14wVi+yuIfWZBMgEcBGm6bWsLkODbSaCGCjTZtgNtfqtNoTwFabMffwb0DYWQvBLAEdtwm+5/lkrfYEsNVmazgElIzxcSyvr0dLiVu5opL4joC4C0SSVmMBXLTZBoDwnge1863npMjVCKDtnA1ML612Abhqs70C8JPB6VMYhv+iCgiRVfD1OwGcsAndPim4yUaHxjr3VrsAZCk3RwpS718i4gpjdK8RQil8SESzruGbzwODeV6uLXdM1t7fg9amDjBOq20VOAza1EJ0rFabAGm1qRvYVzt2rFabAHWRa3zjetmv9BU2oZ/VTFibarRHACQuXJZQX9uHgb0NwZFdwaDyKgKQorBAoBa99b4PHSHCAx7UFnYqULikUL0mArYPY6ceInrTA05gWHmz9xCL4kWF6ioAZFOP0NcO8C8jerm746H9HuhrFg+dHwF4mMRUXQx8Bf4DeBHHQHvQneAAAAAASUVORK5CYII=" alt="温馨提醒">
<div class="icoTxt">即将跳转到外部网站<span style="color:#c8c8c8;font-weight:bold;">    安全性未知,是否继续?</span></div>
</div>
<div class="urlBox">
<span>
您将要访问的链接不属于本网站,请注意您的账号和财产安全。<br />
您访问的网址是:<a class="urlColor"><?php echo $url;?></a>
</span>
</div>
<div class="btn">
<label class="iosk"><input type="checkbox" id="isOk" value="1" />本人已知晓风险,本人自愿访问,与本网站无关。</label>
<a id="goBtn" class="goBtn" href="#" target="_self" onclick="return CheckGoUrl()">继续访问</a>
<script language="javascript" type="text/javascript">
var goUrl = decodeURIComponent("<?php echo $url;?>");
document.getElementById("goBtn").href = goUrl;
function CheckGoUrl(){
if (document.getElementById("isOk").checked){
document.location.href = goUrl;
return true;
}else{
alert("请先打钩左侧【本人已知晓风险】项!"); // ,再点击【继续访问】
return false;
}
}
</script>
</div>
</div>
</div>
</body>
</html>
在发布文章时,外链带上 域名/go/?url= 如示例:跳转到域名b https://www.bailuze.com/go/?url=域名b,域名b就是我们要访问的外部链接地址。
该方法看大家使用的情况吧,其实有没有必要,仁者见仁智者见智,并不是说设置了就好,不设置网站的访问体验就不好,没有这种说法。
1、文章版权归作者所有,未经允许请勿转载。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505
你可能也喜欢
- ♥ 网页建设需要注意哪些事项?07/20
- ♥ 如何制作应用程序的文章和响应式网页设计教程?06/25
- ♥ 宝塔搭建Halo建站系统-外部MySQL的教程09/27
- ♥ 网站建设优化的好处是什么呢?08/26
- ♥ 常见的HTTP状态码11/22
- ♥ 企业做网站建设的误区08/08