热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于nginx:nginx-location-URL匹配规则

replacement:是重写URI的改写规定。当改写规定以"http:""https:"或"$scheme"结尾时,Nginx重写该语句后将进行执行后续工作,并将改写后的URI跳转返

nginx rewrite语法

rewrite regex replacement [flag];

  • regex: 是 PCRE 语法格局的正则表达式,用于匹配字符串。
  • replacement: 是重写 URI 的改写规定。当改写规定以”http://””https://”或”$scheme”结尾时,Nginx 重写该语句后将进行执行后续工作,并将改写后的 URI 跳转返回客户端。
  • flag: 是执行该条重写指令后的操作控制符。操作控制符有如下 4 种:

    • break: 执行完以后重写规定跳转到新的 URI 后不再执行后续操作。不影响用户浏览器 URI 显示。
    • last: 执行完以后重写规定跳转到新的 URI 后继续执行后续操作。
    • redirect: 返回响应状态码 302 的长期重定向,返回内容是重定向 URI 的内容,但浏览器网址仍为申请时的 URI;
    • 返回响应状态码 301 的永恒重定向,返回内容是重定向 URI 的内容,浏览器网址变为重定向的 URI。
      上面一个例子将本地63561代理到nginx代理80端口上,并且所有URL上增加/prefix前缀。

      location /prefix/ {
         rewrite  ^/prefix/(.*)$ /$1 break;
             proxy_pass  http://localhost:63561;            
          }

      原来URL http://localhost:63561/aaa => localhost/prefix/aaa
      尽管在nginx增加了如下配置,可不肯定失效哦,这里就要讲下nginx URI 匹配规定

      URI 匹配规定

      location Modifier pattern { … }

Modifier为location的修饰语,定义URI的匹配规定。pattern 为匹配项,能够是字符串或正则表达式

  • 没有修饰符: 从指定模式开始,只反对字符串

    location /abc{
    root text;
    }

上面规定都匹配:
http://localhost/abc/sdssd
http://localhost/abc?page=1&s…
http://localhost/abcd
http://localhost/abc/

  • =: 齐全匹配 URI 中除拜访参数以外的内容,Linux 零碎下会辨别大小写,Windows 零碎下则不会。

    location = /test {
    root text;
    }

上面都匹配
http://localhost/test
http://localhost/test?page=1&…
不匹配
http://localhost/test2ds
http://localhost/test/

  • ~: 辨别大小写的正则匹配

    location ~ /abc$ {
    root text;
    }

上面都匹配
http://localhost/abc
http://localhost/abc?p=123
不匹配
http://localhost/abc/
http://localhost/ABC
http://localhost/abc/bbd

  • ~*: 不辨别大小的正则匹配

    location ~* /abc$ {
    root text;
    }

上面都匹配
http://localhost/abc
http://localhsot/ABC
http://localhost/abc?p=123
不匹配
http://localhost/abc/
http://localhost/abc/bbd

  • ^~: 作用相似没有修饰符的前缀匹配,nginx对一个申请准确前缀匹配胜利后,进行持续搜寻其余到匹配项,反对正则表达式。

    location ^~ /abc {
    root text;
    }

  • @: 只能外部拜访的 location 区域,能够被其余外部跳转指令应用

    location @images {
    proxy_pass http://images;
    }

匹配程序

  1. 先检测匹配项的内容为非正则表达式修饰语的 location,而后再检测匹配项的内容为正则表达式修饰语的 location。
  2. 匹配项的内容为正则与非正则都匹配的 location,依照匹配项的内容为正则匹配的 location 执行。
  3. 所有匹配项的内容均为非正则表达式的 location,依照匹配项的内容齐全匹配的内容长短进行匹配,即匹配内容多的 location 被执行。
  4. 所有匹配项的内容均为正则表达式的 location,依照书写的先后顺序进行匹配,匹配后就执行,不再做后续检测。

https://www.w3schools.cn/ngin…


推荐阅读
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • Windows环境下RabbitMQ安装详尽指南
    Windows环境下RabbitMQ安装详尽指南 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • 基于Web的Kafka管理工具Kafkamanager首次访问Web界面的详细配置指南(附图解)
    首次访问Kafkamanager Web界面时,需要对Kafka集群进行配置。这一过程相对简单,用户只需依次点击【Cluster】>【Add Cluster】,按照提示完成相关设置即可。本文将通过图文并茂的方式,详细介绍每一步的配置步骤,帮助用户快速上手Kafkamanager。 ... [详细]
  • 快速掌握Tomcat 8.5.40的配置与应用技巧 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 如何使用Python去除字符串中的非中文字符[Python编程技巧]
    在 Python 中,可以通过正则表达式来实现去除字符串中的非中文字符。具体方法是使用 `re` 模块中的 `re.sub()` 函数,配合正则表达式 `[^u4e00-u9fa5]` 来匹配并替换掉所有非中文字符,从而保留字符串中的中文部分。这种方法简洁高效,适用于多种文本处理场景。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文旨在构建一个JavaScript函数,用于对用户输入的电子邮件地址和密码进行有效性验证。该函数将确保输入符合标准格式,并检查密码强度,以提升用户账户的安全性。通过集成正则表达式和条件判断语句,该方法能够有效防止常见的输入错误,同时提供即时反馈,改善用户体验。 ... [详细]
author-avatar
潇潇雨621715
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有