• Nginx 内置变量与正则


    1、内置变量:

    变量名称 变量用途
    $args 这个变量等于GET请求中的所有参数,所以是复数带有s。例如,foo=123&bar=blahblah;这个变量只可以被修改
    $arg_param 获取GET请求中param参数的值。如/index.html?order=111, 则$arg_order=111
    $binary_remote_addr 二进制码形式的客户端地址
    $body_bytes_sent 已发送的消息体字节数
    $content_length HTTP请求信息里的"Content-Length"
    $content_type 请求信息里的"Content-Type"
    $document_root 针对当前请求的根路径设置值
    $document_uri 与$uri相同
    $host 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名;
    $http_cookie cookie 信息
    $http_referer 来源地址
    $http_user_agent 客户端代理信息
    $http_via 最后一个访问服务器的Ip地址
    $http_x_forwarded_for 相当于网络访问路径。
    $limit_rate 对连接速率的限制
    $remote_addr 客户端地址
    $remote_port 客户端端口号
    $remote_user 客户端用户名,认证用
    $request 用户请求信息
    $request_body 用户请求主体
    $request_body_file 发往后端的本地文件名称
    $request_filename 当前请求的文件路径名
    $request_method 请求的方法,比如"GET"、"POST"等
    $request_uri 请求的URI,带参数
    $server_addr 服务器地址,如果没有用listen指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费)
    $server_name 请求到达的服务器名
    $server_port 请求到达的服务器端口号
    $server_protocol 请求的协议版本,"HTTP/1.0"或"HTTP/1.1"
    $uri 请求的URI,可能和最初的值有不同,比如经过重定向之类的

    2、正则

    * 零次或者多次匹配前面的字符表达式,等效于{0,}.; zo*与“z”和“zoo”匹配
    + 一次或者多次匹配前面的字符表达式,等效于{1,};zo+与“zoo”匹配但是与“z”不匹配
    ?

    零次或一次匹配前面的字符或子表达式。当该字段紧随任何其他限定符(*、+、?、{n}、{n,}或{n,m})之后时,匹配模式是非常贪婪的,非贪婪模式匹配搜索到的、尽可能少的字符串,而默认的贪婪模式匹配搜索到的、尽可能多的字符串。zo? 与“z”和“zoo”不匹配;o+?只于“oooooo”中的单个o匹配。而o+与所有的“o”匹配。do(es)?与do或者does中的do匹配

    ^

    匹配搜索字符串以什么开始。如果将用作括号表达式中的第一个字符,则会对字符集求反,d{3}与搜索字符串开始出的3个数字匹配。[^abc]与除abc以为的任何字符匹配

    $ 匹配搜索字符串以什么结尾,d{3}$匹配任何3个数字结尾的
    . 这里其实是一个点号;匹配除了换行符 之外的任何单个字符
    [] 标记括号表达式的开始和结尾,[1-4]与1,2,3,4匹配。[^aAeE],除了a,A,e,E之外的匹配
    {} 标记限定符表达式的开始结尾,a{2,3}匹配“aa”和“aaa”
    () 标记子表达式的开始和结尾,Nginx服务器使用该元字符保存自表达式以备将来之用A(d)与“A0”到“A9”匹配,并保存成一个参数
    | 这个就可以理解成为一个或匹配了;z|food|cunt 匹配z,food ,cunt
    / 此标识符一般在location中 如果一个/就表示默认匹配这个虚拟主机中的所有资源
     与一个字边界匹配,即字与空格间的位置 er "never" 中的“er”匹配,但与'verb"中的“er”不匹配
    B 非边界字符匹配,与相反
    D 匹配非数字
    w 匹配任意字符
    W 排除A-Z a-z 0-9和下划线以外的任意字符匹配
    [a-z] 匹配小写字符
    [^a-z] 反字符范围,与上面相反
    {n} 正好匹配n次,n是非负整数;o{2}不匹配boy,但是匹配food
    {n,} 至少匹配n次
    {n,m} 匹配至少n次,最多m次
    ^和$ 指定搜索字符串的开始和结束为止,这将在搜索字符串包含匹配字符串之外的任何字符时阻止匹配

    参考链接:https://www.jianshu.com/p/2379e619030c

    艺无止境,诚惶诚恐, 感谢开源贡献者的努力!!
  • 相关阅读:
    node.js 建立live-server
    Django 反向解析
    Boost智能指针——weak_ptr
    boost::intrusive_ptr原理介绍
    shared_ptr 的使用及注意事项
    小感
    JQ对页面中某个DIV的大小变化进行监听
    使用java Apache poi 根据word模板生成word报表
    字节byte自适应转换为B、KB、MB、GB、TB
    jq实现 元素显示后 点击页面的任何位置除元素本身外 隐藏元素
  • 原文地址:https://www.cnblogs.com/d0usr/p/12470566.html
Copyright © 2020-2023  润新知