概述
Rewrite主要的功能是实现URL重写,Nginx 的 Rewrite 规则采用 PCRE Perl 兼容正则表达式的语法进行规则匹配,如相使用 Nginx 的 Rewrite 功能,在编译 Nginx 前要编译安装 PCRE 库。
Nginx使用if进行条件匹配
Nginx可以用if进行条件匹配,语法规则类似C
if (条件){...} ( 可用于: server,location ) ## 检查一个条件是否符合,如果条件符合,则执行大括号内的语句。不支持嵌套,不支持多条件 && ||
例如:if ($http_user_agent ~ MSIE) {rewrite ^(.*)$ /msie/$1 break;}
1、正则表达式匹配,其中:
~ 为区分大小写匹配
~* 为不区分大小写匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配
2、文件及目录匹配,其中:
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行
例如:if (!-f $request_filename) {proxy_pass http://127.0.0.1;}