网站首页 > 技术教程 正文
Nginx重定向:
一般设置return 403;之后,网页的页面会出现:
403 Forbidden
----------------
nginx
这种显示。
---我是华丽的分隔线---
.点匹配任何单字符
*匹配前面的字符零次或者多次。
+匹配前面的字符1次或者多次,也就是最少1次,相当于{1,}
?匹配前面的字符0次或者1次,相当于{0,1}
---我是华丽的分隔线---
正则表达式配置的语法:
rewrite regex replacement [flag]
Regex使用pcre正则表达式。
regex是^/(.*)是一个正则表达式,表示匹配所有,匹配完整的域名和后面的路径地址。
---我是华丽的分隔线---
目录对换/123456/xxxx->/xxxx?id=123456:
rewrite ^/(\d+)/(.+)/ /$2?id=$1 last;
\d匹配一个数字字符,等价于[0-9]
+加匹配前面的子表达式一次或者多次。
点.匹配除了\n之外的任何单个字符
last:相当于apache里面的[L]标记,表示完成rewrite。
---我是华丽的分隔线----
禁止访问以.sh、.flv、.mp4为文件后缀的URL:
location ~ .*\.(sh|flv|mp4)?$ {return 403;}
? 匹配前面的表子达式零次或者一次。
\. 将下一个字符标记为一个特殊字符。
----我是华丽的分隔线----
网站信息防盗链:
在我们部署网站后,网站中的静态资源,比如网站中的图片,可以被其他网站大量盗用。为了解决这个问题,可以根据referer信息进行防盗链的设置,以免网站资源被非法盗用,造成经济损失。
HTTP协议中有一个表示“页面或者资源”来源的请求头,这个请求头我们叫做Rerferer。Referer表示请求是从哪个网址发出来的。
防盗链功能是基于HTTP协议支持的Referer机制,通过Referer跟踪请求来源,对来源进行识别和判断。
防盗链的配置可以在任意location{}下配置,不能在server{…}中配置。
location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.yourdomain.com *.yourdomain.com;
if($invalid_referer) {
rewrite ^/(.*) http://www.yourdomain.com/blocked.html;
}
}
~* \.(gif|jpg|png|swf|flv)$:这段正则表达式表示匹配不分大小写,以.gif、.jpg、.png、.swf、.flv等结尾的文件。
valid_referers设置信任的网站,可以正常使用图片。
后面的网站网址或者域名:referer中包含的字符串的网址。
if语句:如果链接的来源域名不在valid_referers的列表中,那么$invalid_referer为1,执行后面的操作,即进行rewrite重写。
防盗链的指令是valid_referers。可选值是none,blocked,server_name。默认值是none。
valid_referers指令会根据Referer Header头的内容,分配一个值为0或者1给变量$invalid_referer。如果Referer Header不符合valid_referers设置的有效referer,那么变量$invalid_referer将被设置为1。
valid_referers指令的参数可以是:
①:none 表示无Referer值的情况。
②: blocked 表示Referer值被防火墙伪装。
③:server_name 表示一个或者多个主机名称,server_name中可以使用通配符*星号。
介绍http头referer信息:
①:当浏览器向web 服务器发送请求时一般都会带上referer,包含当前请求页面的来源地址,即表示当前页面是通过这个来源页面里面的链接进入的。
②:后台服务器可以根据获取的referer信息,判断是否是自己信任的网站地址。如果是,则放行继续访问。如果否,则可以返回403状态信息。
③:服务端一般使用referer请求头识别访问来源,以进行统计分析、日志记录和缓存优化等。
valid_referers:
查看referer,自动和valid_referers后面的变量进行匹配,如果匹配到,就将invalid_referer变量置为0(false,合法)。如果没有匹配到,就将invalid_referer变量置为1(true,不合法)。匹配的过程中不区分大小写。
valid_referers的语法:
valid_referers none | blocked | server_names | string
none:如果Header中的Referer值为空,允许访问。
blocked: 在Header中的Referer不为空,但是该值被防火墙或者代理进行伪装过,如不带http://、https://等协议头的资源,允许访问。
server_names:指定具体的域名或者IP,可以使用通配符*。
string:支持正则表达式、带*的字符串。如果是正则表达式,需要以~开头表示。表达式将与http://或者https://之后的文本进行匹配。
使用if判断$invalid_referer,0(false,合法,不进入if块)/1(true,不合法,进入if块)。
鼓励的话语:泰山崩于前,面不改色;大海啸于后,而不变声,为大丈夫!
猜你喜欢
- 2024-09-09 「Nginx」Web/代理服务器的瑞士军刀:重写与定位
- 2024-09-09 ingress-nginx常用注解指南(nginx详细讲解)
- 2024-09-09 Nginx反向代理常用配置(nginx反向代理设置)
- 2024-09-09 nginx+springboot使用https重定向的解决办法
- 2024-09-09 Nginx从0基础到进阶实战!运维工程师必看
- 2024-09-09 深度|掌握Nginx监控运维,这一篇足矣!
- 2024-09-09 详解nginx配置location总结及rewrite规则写法
- 2024-09-09 nginx 使用技巧配置(nginx 配置详解)
- 2024-09-09 nginx之Rewrite实战(nginx rewrite_by_lua)
- 2024-09-09 详解 Nginx配置静态内容服务器|附案例说明
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)