当前位置: 首页 > news >正文

nginx的重定向

nginx的重定向

nginx的重定向(rewrite)

location 匹配

location匹配的就是后面的URI

/wordpress

192.168.39.50./wordpress

location匹配的分类和优先级*

1、精确匹配 location = / 对字符串进行完全匹配,必须完全符合

2、正则匹配

^~ 前缀匹配,以什么为开头
 区分大小写的匹配

~* 不区分大小的匹配

!~ 区分大小写的取反

!~* 不区分大小的取反

3、一般匹配

location /字符串

精确匹配的优先级最高,正则,一般

优先级总结

location = 完整路径 > location ^~ > location ~ location ~* > location /部分起始位置 > location /

实际网站中的使用规则:

1、

	location =/ {root html;index index.php index.html index.htm;}#一般为网站首页

2、必选的规则:处理静态请求的页面

	location ^~ /static/ {root /web/static/;index	index.html index.htm;}#用来匹配静态页面
	location ~* \.(jpg|gif|png|jpeg|css)$ {root /web/picturs/;index	index.html index.htm;}#访问图片或者指定后缀名

3、一般是通用规则,用来转发.php .js

为后缀的动态请求到后端服务器(数据库)

	location / {proxy_pass}#转发后端请求和负载均衡

rewrite重定向:

rewrite就是把当前访问的页面跳转到其他页面。

rewrite的工作方式:通过nginx的全局变量或者自定义变量,结合正则表达式和标志位实现url的重定向

nginx的变量

$URI 客户端请求的URI的地址

$host 请求的主机名

$http_user_agent 客户端请求的浏览器和操作系统

$http_referer 请求头的referer信息,表示当前页面来源的URL

$remote_addr 客户端的ip地址

$remote_posrt 客户端的端口号

$server_addr 服务端的IP地址

$server_port 服务端的端口号

$request_method 获取客户端请求的方法

$scheme 请求的协议,要么是http,要么是https

x_forwarded_for 用来获取请求头当中客户端的真实ip地址,代理服务器添加,在代理服务器当中指示客户端的ip地址

x_Real-IP 客户端真实的IP地址

nginx.conf

proxy_set_header X-Real-IP $remote_addr 加上这个字段,客户端的真实ip地址就会传递给后端服务器

标志位

flag

permanent 永久重定向,返回码301,浏览器地址栏会显示跳转后的URL地址

redirect 临时重定向,返回码302,浏览器地址栏会显示跳转后的URL地址

break 永久重定向,返回码301,匹配到规则之后,不会再向下匹配其他规则,URL也不会发生变化

last 重定向,但是会继续向下匹配其他的location

rewrite的执行顺序

1、server模块的rewrite优先级最高

2、匹配location的规则

3、执行选定的location规则。

rewrite的语法

rewrite 正则表达式 跳转后的内容 标志位;

rewrite /test1/(.*)/xy102/$1 permanent;
# 192.168.233.61/test1/index.html
192.168.233.61/xy102/index.html $1就是捕获组

rewrite or internal redirection cycle while processing?
在重定向的过程中,使用了last当时进行重定向,但是没有结束语,陷入了死循环,nginx会自动循环10次,last匹配最多只能执行10次,超过10次没有结束,就会停止,然后报错

#基于域名进行跳转,老的不用了,但是依然能够访问,统统跳转到新的域名

location匹配的优先
location =
location ~
~*
location /
重定向
permanent
redriect
break
last
500报错 10次

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Windows】实现窗口子类化(基于远程线程注入)
  • QImage显示图片像素
  • 技术文件国产化准备
  • [C++] 轻熟类和对象
  • 内网信息收集:手动、脚本和工具查IP、端口
  • 5-3.损失函数
  • Docker 日志丢失 - 解决方案
  • Python基于you-get下载网页上的视频
  • scipy库中,不同应用滤波函数的区别,以及FIR滤波器和IIR滤波器的区别
  • Perl 数据类型
  • 【RHCE】转发服务器实验
  • vue3项目安装和使用element-plus
  • 推荐算法有哪些?——协同过滤、内容推荐、DNN、FM、DeepFM
  • Android使用http加载自建服务器静态网页
  • android gradle开发基础
  • (三)从jvm层面了解线程的启动和停止
  • [case10]使用RSQL实现端到端的动态查询
  • 【附node操作实例】redis简明入门系列—字符串类型
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • js如何打印object对象
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Redux 中间件分析
  • SAP云平台里Global Account和Sub Account的关系
  • Vue学习第二天
  • Windows Containers 大冒险: 容器网络
  • 回流、重绘及其优化
  • 基于axios的vue插件,让http请求更简单
  • 前端路由实现-history
  • 深入 Nginx 之配置篇
  • 一个JAVA程序员成长之路分享
  • 源码安装memcached和php memcache扩展
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 《天龙八部3D》Unity技术方案揭秘
  • Prometheus VS InfluxDB
  • ​​​【收录 Hello 算法】9.4 小结
  • ​Linux·i2c驱动架构​
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • #android不同版本废弃api,新api。
  • #NOIP 2014# day.1 T2 联合权值
  • (04)odoo视图操作
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (4.10~4.16)
  • (7)摄像机和云台
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • **CI中自动类加载的用法总结
  • .Family_物联网
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .NET关于 跳过SSL中遇到的问题
  • .Net中间语言BeforeFieldInit
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • /bin、/sbin、/usr/bin、/usr/sbin
  • /bin/rm: 参数列表过长"的解决办法