• nginx rewrite 常见设置


    由于希望服务器路径不被访问所知道,所以做了伪静态

    if ($host ~* ^([^.]+).([^.]+.[^.]+)$)  {

    }   #这个是域名的一个规则,通过这个规则把域名分为二段分组,这样就可以取出第一个分组(获取二级域名)

                  在server块下,会优先执行rewrite部分,然后才会去匹配location块
    
                  server中的rewrite break和last没什么区别,都会去匹配location,所以没必要用last再发起新的请求,可以留空
    
    
    
    location中的rewirte:
    
    
    
                  不写last和break     那么流程就是依次执行这些rewrite
    
                  rewrite break         url重写后,直接使用当前资源,不再执行location里余下的语句,完成本次请求,地址栏url不变
    
                  rewrite last           url重写后,马上发起一个新的请求,再次进入server块,重试location匹配,超过10次匹配不到报500错误,地址栏url不变
    
                  rewrite redirect       返回302临时重定向,地址栏显示重定向后的url,爬虫不会更新url(因为是临时)
    
                  rewrite permanent     返回301永久重定向, 地址栏显示重定向后的url,爬虫更新url
    
    .
    
                  使用last会对server标签重新发起请求
    
                  如果location中rewrite后是对静态资源的请求,不需要再进行其他匹配,一般要使用break或不写,直接使用当前location中的数据源,完成本次请求
    
                  如果location中rewrite后,还需要进行其他处理,如动态fastcgi请求(.php,.jsp)等,要用last继续发起新的请求
    
                  (根的location使用last比较好, 因为如果有.php等fastcgi请求还要继续处理)
    ~      为区分大小写的匹配。
    
    ~*     不区分大小写的匹配(匹配firefox的正则同时匹配FireFox)。
    
    !~     不匹配的
    
    !~*    不匹配的
    
    .     匹配除换行符以外的任意字符
    
    w     匹配字母或数字或下划线或汉字
    
    s     匹配任意的空白符
    
    d     匹配数字
    
         匹配单词的开始或结束
    
    ^     匹配字符串的开始
    
    $     匹配字符串的结束
    
    *     重复零次或更多次
    
    +     重复一次或更多次
    W     匹配任意不是字母,数字,下划线,汉字的字符
    
    S     匹配任意不是空白符的字符
    
    D     匹配任意非数字的字符
    
    B     匹配不是单词开头或结束的位置
    
    [^x]     匹配除了x以外的任意字符
    
    [^aeiou]     匹配除了aeiou这几个字母以外的任意字符
    
    
    
    捕获     (exp)     匹配exp,并捕获文本到自动命名的组里
    
    (?<name>exp)     匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
    
    (?:exp)     匹配exp,不捕获匹配的文本,也不给此分组分配组号
    
    零宽断言     (?=exp)     匹配exp前面的位置
    
    (?<=exp)     匹配exp后面的位置
    
    (?!exp)     匹配后面跟的不是exp的位置
    
    (?<!exp)     匹配前面不是exp的位置
    
    注释     (?#comment)     这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读


    当一个域名内容url需要访问另一个域名url内容,而且还想返回到浏览的状态为200,这时候下面的方法就可以解决了

    location ^~ /xxx/dangan_search {
    proxy_pass http://www.xxx.com/$uri$is_args$args;
    }

    location ^~ /xxx/exponent {
    proxy_pass http://www.xxx.com/$uri$is_args$args;
    }

  • 相关阅读:
    EggJs+Vue服务端渲染实践
    使用Charles代理功能将网络请求定向至本地文件
    iOS内存管理(一)
    RumTime实践之--UITableView和UICollectionView缺省页的实现
    CollectionView水平和竖直瀑布流的实现
    解决在HTTPS页面里嵌套HTTP页面浏览器block的问题
    利用servlet做转发,实现js跨域解决同源问题
    js将数字转换成大写的人民币表达式
    《将博客搬至CSDN》 分类: 勉励自己 2014-09-05 14:29 43人阅读 评论(0) 收藏
    jquery插件,美化select标签
  • 原文地址:https://www.cnblogs.com/zenghui940/p/4234511.html
Copyright © 2020-2023  润新知