nginx的rewrite重写
nginx具有将一个路由经过加工变形成另外一个路由的功能,这就叫做重写。
重写中用到的指令
if (条件) {} 设定条件,再进行重写
set # 设定变量
return # 返回状态码
break # 跳出 rewrite
rewrite # 重写
if 语法格式
if 空格 (条件){ 重写模式 }
条件的写法:
-
“=” 来判断相等,用于字符串比较
-
“~” 用正则来匹配(此次的正则区分大小写)“~*” 不区分大小写的正则
-
server { listen 80; service name www.baidu.com; if ($http_user_agent ~* chrome) { return 403; } }
如上配置,就是当请求头中的UA是谷歌的时候,禁止访问。
另外nginx中还有很多的参数可以使用,比如日志中的参数,或者参数文件中的参数,例如fastcgi_params。