nginx位置匹配及重写规则

  

位置匹配规则

  

1。实例

  
 <代码类=" language-bash ">服务器{
  位置=\ {
  (配置一个)
  }
  位置/{
  (配置B]
  }
  位置=/图片/{
  (配置C]
  }
  位置^ ~/静态/{
  (配置D]
  }
  localtion ~ * \。(gif | jpg | png) {
  (配置E)
  }
  } 
  

2。位置语法规则

  

<>强语法:

  
 <代码类=" language-bash ">位置=| | ~ | ~ * ^ ~ | @/url/{//注意=,~,~ * ^ ~,@是位置的匹配规则,“|”表示或者
  ”
  ……省略其他配置
  } 
  

<>强规则说明:

           符号   含义=字面精准匹配,如果匹配,则跳出匹配过程(不再进行正则匹配)         ~   开头区分大小写的正则匹配         ~ *   开头不区分大小写的正则匹配         ^ ~   开头表示uri以某哥常规字符串开头,理解为匹配url路径即可/通用匹配,在没有正则表达式匹配时,任何请求都会匹配到         @   不是普通的位置匹配,用于位置内部重定向的变量         ~   开头区分大小写的正则匹配            

<强>多个位置配置的匹配顺序:

  
      <李>首先匹配:“=袄?/>   <李>其次匹配:“^ ~“李   <李>再匹配:文件位置书写顺序李   <李>最后把所有请求交给通配符(“/?   
  

注意:每次匹配成功后,停止匹配,会按照本匹配的位置处理请求

  

<强>按照上面实例进行说明匹配顺序:

  
      <李>首先对比第一个位置,如果匹配就会停止匹配,并按照配置一进行处理请求:   
     <代码类=" language-bash ">=\{位置
      (配置一个)
      } 
      <李>其次对比第二个位置,如果匹配就会停止匹配,并按照配置D进行处理请求:   
     <代码类=" language-bash ">位置^ ~/静态/{
      (配置D]
      } 
      <李>再按照顺序依此进行对比,直到找到匹配的才会停止,并按照所匹配的配置*进行处理请求李   <李>   

    如果以上无任何匹配项则会选择通用选项,并按照所匹配的配置B进行处理请求:

      
     <代码类=" language-bash ">位置/{
      (配置B]
      } 
      

    3。应用举例

      李   <李>精准规则(=)   
     <代码类=" language-bash ">=/{位置
      根/var/ww/html/;
      } 
      

    此规则表示只匹配以默认地址进行访问的请求,访问地址:http://NginxIP/

      <李>匹配url路径(^ ~)   
     <代码类=" language-bash ">位置^ ~/静态/{
      根/var/www/html/static;
      } 
      

    此规则表示只匹配以“静态/翱返牡刂方蟹梦实那肭?访问地址:https://cache.yisu.com/upload/information/20200214/32/673.jpg | 。gif | * . jpg”的文件,访问地址:https://cache.yisu.com/upload/information/20200214/32/674.jpg

      
     <代码类=" language-bash ">位置~ */测试/{
      根/var/www/html/;
      } 
      

    此规则表示匹配url地址中存在测试的访问请求,不区分大小写测试也可以,访问地址:http://NginxIP/test/

      <李>区分大小写(~)   
     <代码类=" language-bash ">位置~/测试/{
      根/var/www/html/;
      } 
      

    此规则表示匹配url地址中存在测试的访问请求,区分大小写,测试是进行匹配的,访问地址:http://NginxIP/Test/

      <李>默认匹配(所有规则都可匹配)   
     <代码类=" language-bash ">位置/{
      根/var/www/html;
      } 
      

    此规则为默认匹配,他可以匹配所有以默认地址访问的链接,访问地址:http://NginxIP/login.html

      <李>内部跳转(@)   
     <代码类=" language-bash ">位置@index_error {
      根/var/www/error/} 
      

    此规则表示匹配以“索引/翱返那肭?如果链接状态,404会匹配到这条规则

      

    重写规则详解

      

    nginx的重写功能和apache一样,重写的主要功能是实现原则地址的重定向.Nginx的重写功能是由PCRE软件支持,重写模块即<代码> ngx_http_rewrite_module 模块。从某种意义上可以说为了美观或者搜索引起的友好搜索,提高排名等

      
  

1。实例

  
 <代码类=" language-bash ">服务器{
  听80;
  server_name www.jkyst.xyz jkyst.xyz;
  if($主机!=' www.jkyst.xyz ') {
  重写^/(. *)http://www.jkyst.xyz/1美元永久性的;
  }
  ~ . * \位置。(png | gif | jpg) {
  返回403;
  }
  }

nginx位置匹配及重写规则