506629361 发表于 2018-11-10 08:40:45

nginx配置location [=|~|~*|^~] /uri/ { … }用法

  nginx location介绍
  Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。Location 指令,是用来为匹配的 URI 进行配置,URI 即语法中的”/uri/”,可以是字符串或正则表达式。但如果要使用正则表达式,则必须指定前缀。
  nginx location语法
  基本语法:location [=|~|~*|^~] /uri/ { … }
  = 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。
  ~ 为区分大小写匹配(可用正则表达式)
  ~* 为不区分大小写匹配(可用正则表达式)
  !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
  ^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。
  Location语法语法:location [=|~|~*|^~] /uri/ { … }
  注:
  1、~   为区分大小写匹配
  2、~* 为不区分大小写匹配
  3、!~和!~*分别为区分大小写不匹配及不区分大小写不匹配
  示例一:
  location/ { }
  匹配任何查询,因为所有请求都以 / 开头。但是正则表达式规则将被优先和查询匹配。
  示例二:
代码如下复制代码location =/ {}  仅仅匹配/
  示例三:
代码如下复制代码location ~* .(gif|jpg|jpeg)$ {  rewrite .(gif|jpg)$ /logo.png;
  }
  注:不区分大小写匹配任何以gif,jpg,jpeg结尾的文件
  nginx location应用实例
代码如下复制代码  location = / {
  # 只匹配 / 查询。
  }location / {
  # 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
  }location ^~ /images/ {
  # 匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
  }location ~* .(gif|jpg|jpeg)$ {
  # 匹配任何已 gif、jpg 或 jpeg 结尾的请求。
  }location ~* .(gif|jpg|swf)$ {
  valid_referers none blocked start.igrow.cn sta.igrow.cn;
  if ($invalid_referer) {
  #防盗链
  rewrite ^/ http://$host/logo.png;
  }
  }
  location ~* .(js|css|jpg|jpeg|gif|png|swf)$ {
  if (-f $request_filename) {
  #根据文件类型设置过期时间
  expires    1h;
  break;
  }
  }
  location ~* .(txt|doc)${
  #禁止访问某个目录
  root /data/www/wwwroot/linuxtone/test;
  deny all;
  }
  ++ 一些可用的全局变量
  $args
  $content_length
  $content_type
  $document_root
  $document_uri
  $host
  $http_user_agent
  $http_cookie
  $limit_rate
  $request_body_file
  $request_method
  $remote_addr
  $remote_port
  $remote_user
  $request_filename
  $request_uri
  $query_string
  $scheme
  $server_protocol
  $server_addr
  $server_name
  $server_port
  $uri

页: [1]
查看完整版本: nginx配置location [=|~|~*|^~] /uri/ { … }用法