作为微网站搭建和开发者,是不是经常发现自己的域名被QQ或者微信拦截,以前网上也有很多比如跳转,炮灰域名这样的办法来做防红处理,不过效果也不是特别理想。偶然的机会让我了解到了腾讯SCF这个服务,于是产生了一个用腾讯自身的服务来防止域名变红的方法并且进行了测试。
什么是腾讯SCF?
无服务器云函数(Serverless Cloud Function)是腾讯云提供的无服务器(serverless)执行环境,您无需购买和管理服务器,而只需使用平台支持的语言编写核心代码并设置代码运行的条件,代码即可在腾讯云基础设施上弹性、安全地运行。本实验带你使用 SCF,轻松生成缩略图。防红步骤开始
首先我们需要注册一个腾讯云的账号,然后我们登录到后台,点击新建应用。
一、未拦截网站处理方法
我们选择应用市场>快速部署一个Website静态网站,然后就无脑下一步,等待部署完成。我们在函数服务里,找到我们的应用(如果没有找到,则需要关注一下区域是不是选错了),进来之后,我们点击函数管理,观察了一下代码,发现其实这里很简单。比方说,这里的路由就是简单的通过sendFile来引用文件.
app.get(`/`, (req, res) => { res.sendFile(path.join(__dirname, 'index.html')) })然后我们把静态页面写到blog/index.html里就可以展示了,这是一种方式可以做跳转
app.get('/user/:id', (req, res) => { const id = req.params.id res.send({ id: id, title: 'serverless framework', link: 'https://serverless.com' }) })通过这种方式,我们思考到是不是可以通过输入文章id,我们做一个跳转匹配到博客呢?
app.get(`/blog/:article`, (req, res) => { const article = req.params.article res.redirect('https://www.xxx.com/sec/pig=' + article) })
const deviceAgent = req.headers['user-agent'].toLowerCase();
const deviceAgent = req.headers['user-agent'].toLowerCase(); const agentID = deviceAgent.match(/(qq)/);
const deviceAgent = req.headers['user-agent'].toLowerCase(); const agentID = deviceAgent.match(/(qq)/); if (agentID) { res.send('您的环境现在处于QQ客户端') } else { res.sned('您的环境现在处于非QQ客户端') }
app.get(`/blog/:article`, (req, res) => { const article = req.params.article const deviceAgent = req.headers['user-agent'].toLowerCase(); const agentID = deviceAgent.match(/(qq)/); if (agentID) { res.send('<!DOCTYPE html><html><head><title>请在浏览器中打开</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <style> body{background-color:#333;} img{width:100%;} </style></head><body><img src="https://www.xxxx.com/demo/open_in_browser.png" /></body>') } else { res.redirect('https://www.xxxx.com/sec/pig=' + article) } })
三、如何给安卓提示打开手机浏览器,并且更换图标呢
最核心的就是我们在判断完在QQ端里,我们再判断一下是不是苹果手机。