Nginx 基本语法

rewrite 语法

  • last - 基本上都使用这个Flag
  • break - 中止 Rewrite ,不再继续匹配
  • redirect - 返回临时重定向的 HTTP 状态 302
  • permanent - 返回永久重定向的 HTTP 状态 301

1、下面是可以用来判断的表达式:

-f 和 !-f 用来判断是否存在文件
-d 和 !-d 用来判断是否存在目录
-e 和 !-e 用来判断是否存在文件或目录
-x 和 !-x 用来判断文件是否可执行 

2、下面是可以用作判断的全局变量

Nginx提供了丰富、完整的内置变量,它极大地增加了对Nginx网络行为的控制细度。这些变量大部分都是在请求进入时解析的,并把它们缓存到请求cycle中,方便下一次获取使用。

例:http://localhost:88/test1/test2/test.php?k=v
$host:localhost
$server_port:88
$request_uri:/test1/test2/test.php?k=v
$document_uri:/test1/test2/test.php
$document_root:D:\nginx/html
$request_filename:D:\nginx/html/test1/test2/test.php

redirect 语法

server {
    listen 80;
    server_name start.igrow.cn;
    index index.html index.php;
    root html;
    if ($http_host !~ "^star\.igrow\.cn$") {
        rewrite ^(.*) http://star.igrow.cn$1 redirect;
    }
}

防盗链

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;
}

  

posted @ 2019-03-25 14:59  让我们荡起双桨!  阅读(521)  评论(0)    收藏  举报