nginx如何拦截未经授权的跳转
- 背景
- 准备好一个网站
- 准备好引用网站
- 配置nginx拦截
- 效果
背景
- 在现实工作中往往有一些企业或人未取得授权但是转载或挂载我们的网址。
- 那么有些要求严格或者有其他原因的情况下不希望这些链接正常访问。所以就有了这样的需求。
- 前提是咱们的网站什么的是通过nginx转发的。
准备好一个网站
我们这里就直接使用nginx默认页。
准备好引用网站
这里我们旧写一个简单的html。
然后修改本地hosts文件模拟“未经授权”网站。模拟域名demo.xqxyxchy.cn
C:\Windows\System32\drivers\etc
127.0.0.1 demo.xqxyxchy.cn
127.0.0.1 demo.block.cn
demo.html文件内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>nginx如何拦截未经授权的跳转</title>
</head>
<body>
<h1>nginx如何拦截未经授权的跳转</h1>
<p>下面我们跳转到被拦截网站</p>
<a href="http://demo.xqxyxchy.cn">nginx如何拦截未经授权的跳转</a>
</body>
</html>
block.html文件内容,被盗用页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>nginx如何拦截未经授权的跳转</title>
</head>
<body>
<h1>nginx如何拦截未经授权的跳转</h1>
<p>你偷我东西</p>
</body>
</html>
配置nginx拦截
server {
listen 80;
server_name demo.xqxyxchy.cn;
charset utf8;
location / {
# 拦截不想给它访问的来源
if ($http_referer ~* .*.block.cn) {
#return 404;#可以直接返回404页面
#rewrite ^/ https://xxx.cn;#也可以跳转到我们指定的页面,如提醒获取授权页面
return 404;
}
root html;
index index.html index.htm;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
效果