nginx URL_重写if规则和nginx变量

URL重写 ----- rewrite 


if指令  

if (condition) {......}                               代表条件为真时的nginx操作     


condition条件的写法:

1) 变量名 

    
    如果变量的值为空,或者为以"0"开头的任意字符串,条件为假,其他则为真 
    
    if ($slow) {....}
    
2) 使用"="或者"!="比较变量的值

    if ($request_method = POST) {.....}
    
3) 使用正则表达式与变量的值进行匹配 

    变量名与正则表达式间使用~, ~*, !~, !~*进行连接 
    
    在正则表达式中使用()可以对字符进行分组,在{}中可以用$1....$9引用分组
    
    正则表达式写时不需要加双引号,但是如果正则表达式中含有}和;字符,则必须要使用双引号
    
    if ($http_user_agent ~ MSIE) {.....}


4) 判断请求的文件是否存在(-f,!-f)

5) 判断请求的目录是否存在 (-d, !-d)

6) 判断请求的目录或文件是否存在 (-e, !-e)

7) 判断请求的文件是否可执行 (-x, !-x)

 

 

 

Nginx变量 

1) $args 

    存放URL中的请求指令 
    
    https://reg.jd.com/reg/person?ReturnUrl=https%3A//sale.jd.com/act/r1z8LpvTcxkDbge.html   
    
        ReturnUrl=https%3A//sale.jd.com/act/r1z8LpvTcxkDbge.html 

2) $content_length 

    存放请求报文中content_length字段内容
    
3) $content_type 

    存放请求报文中content_type字段内容
    
4) $document_root 

    存放针对当前请求的根路径
    
5) $document_uri 

    存放请求报文中的当前URI,并且不包括请求指令 
    
    https://reg.jd.com/reg/person?ReturnUrl=https%3A//sale.jd.com/act/r1z8LpvTcxkDbge.html
                
        /reg/person        
                
6) $host 

    存放请求报文中的主机部分 
    
    https://reg.jd.com/reg/person?ReturnUrl=https%3A//sale.jd.com/act/r1z8LpvTcxkDbge.html
                
        reg.jd.com        
                
7) $http_user_agent 

    存放客户端代理信息(浏览器)

8) $http_cookie 

    存放客户端的cookie信息
                
9) $limit_rate

    存放nginx服务器对网络连接速率的限制,也就是ngnix配置文件中limit_rate指令的值 
    
10) $remote_addr 

    存放客户端地址 
    
11) $remote_port 
    
    存放客户端端口 

12) $remote_user 
                
    存放客户端的用户名 

13) $request_body_file 

    存放发给后端服务器的本地文件资源名称 
    
14) $request_method 

    存放客户端请求资源的方法, GET, POST, PUT, DELETE, HEAD 
                
15) $request_filename 

    存放当前请求的资源文件的路径名 
    
16) $request_uri 

    存放当前请求的URI,并且带有请求指令 
    
    https://reg.jd.com/reg/person?ReturnUrl=https%3A//sale.jd.com/act/r1z8LpvTcxkDbge.html
    
        /reg/person?ReturnUrl=https%3A//sale.jd.com/act/r1z8LpvTcxkDbge.html

17) $query_string 

    与变量$args含义相同
    
18) $scheme 

    存放客户端请求使用的协议,如果http, https 
    
19) $server_protocol 

    存放客户端请求协议的版本    HTTP/1.0   HTTP/1.1 
    
20) $server_addr 

    存放服务器地址 
    
21) $server_name 

    存放了客户端请求到达的服务器的名称
    
22) $server_port 

    存放了客户端请求到达的服务器的端口号
    
23) $uri 

    与变量$document_uri含义相同 
 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值