zoukankan      html  css  js  c++  java
  • 2.nginx_rewrite模块

    rewrite

    syntax: rewrite regex replacement [flag]
    Default: —
    Context: server, location, if
    • 如果正则表达式(regex)匹配到了请求的URI(request URI),这个URI会被后面的replacement替换
    • rewrite的定向会根据他们在配置文件中出现的顺序依次执行
    • 通过使用flag可以终止定向后进一步的处理
    • 如果replacement以“http://”, “https://”, or “$scheme”开头,处理将会终止,请求结果会以重定向的形式返回给客户端(client)
    • 如果replacement字符串里有新的request参数,那么之前的参数会附加到其后面,如果要避免这种情况,那就在replacement字符串后面加上“?”,eg:
       rewrite ^/users/(.*)$ /show?user=$1? last;=
    • 如果正则表达式(regex)里包含“}” or “;”字符,需要用单引号或者双引号把正则表达式引起来

    可选的flag参数如下:

    • last
    1. 结束当前的请求处理,用替换后的URI重新匹配location;
    2. 可理解为重写(rewrite)后,发起了一个新请求,进入server模块,匹配location;
    3. 如果重新匹配循环的次数超过10次,nginx会返回500错误;
    4. 返回302 http状态码 ;
    5. 浏览器地址栏显示重地向后的url
    • break
    1. 结束当前的请求处理,使用当前资源,不在执行location里余下的语句;
    2. 返回302 http状态码 ;
    3. 浏览器地址栏显示重地向后的url
    •  redirect
    1. 临时跳转,返回302 http状态码;
    2. 浏览器地址栏显示重地向后的url
    • permanent
    1. 永久跳转,返回301 http状态码;
    2. 浏览器地址栏显示重定向后的url
  • 相关阅读:
    Mongo库表占用空间统计
    修改elasticsearch默认索引返回数
    针对docker中的mongo容器增加鉴权
    自动化测试框架STAF介绍
    单点登陆思想
    Django请求流程
    python冒泡排序,可对list中的字典进行排序
    python合并list中各个字典中相同条件的累计数
    哎,linux nginx命令就是记不住啊
    python利用urllib2读取webservice接口数据
  • 原文地址:https://www.cnblogs.com/leleyao/p/10627424.html
Copyright © 2011-2022 走看看