Nginx入门 互动版

Rewrite规则


  Nginx Rewrite 规则相关指令有if,rewrite,set,return,break等,其中最关键的就是rewrite。一个简单的Nginx Rewrite规则语法如下:

rewrite ^/b/(.\*)\.html /play.php?video=$1 break;

正则表达式匹配,其中:

  1. ~ 为区分大小写匹配;
  2. ~* 为不区分大小写匹配;
  3. !~和!~*分别为区分大小写不匹配及不区分大小写不匹配。

文件及目录匹配,其中:

  1. -f和!-f用来判断是否存在文件;
  2. -d和!-d用来判断是否存在目录;
  3. -e和!-e用来判断是否存在文件或目录;
  4. -x和!-x用来判断文件是否可执行。

flag标记有:

  1. last 相当于Apache里的[L]标记,表示完成rewrite;
  2. break 终止匹配, 不再匹配后面的规则;
  3. redirect 返回302临时重定向 地址栏会显示跳转后的地址;
  4. permanent 返回301永久重定向 地址栏会显示跳转后的地址。

当然除了这些以外,Rewrite规则中还会用到一些相应的全局变量,如$args,$url等等