版权声明:silly8543 https://blog.csdn.net/cen50958/article/details/89684758
1.描述
- nginx 配置文件中语法
2.系统定义变量名
查看nginx有权引用的变量名: more /application/nginx/conf/fastcgi.conf
3.常用命令
-
if
语法:if 空格 (条件) { 重写模式 }
样例:
// 请求方法 if ($request_method = GET) { return 405; } //请求IP if ($remote_addr = 192.168.1.100) { return 403; } //正则表达式 判断浏览器是否是IE if ($http_user_agent ~ MSIE) { rewrite ^.*$ /ie.htm; break; #(不break会循环重定向) } //统一设置404页面 if (!-e $document_root$fastcgi_script_name) { rewrite ^.*$ /404.html break; #注:此处还要加break, #观察访问日志, 日志中显示的访问路径,依然是GET /dsafsd.html HTTP/1.1 #提示: 服务器内部的rewrite和302跳转不一样. #跳转的话URL都变了,变成重新http请求404.html, 而内部rewrite, 上下文没变, #就是说 fastcgi_script_name 仍然是 dsafsd.html,因此 会循环重定向. }
-
set
语法:set #变量
样例:
//判断IE并重写,且不用break; 我们用set变量来达到目的 if ($http_user_agent ~* msie) { set $isie 1; } if ($fastcgi_script_name = ie.html) { set $isie 0; } if ($isie 1) { rewrite ^.*$ ie.html; }
-
return #返回状态码
-
break #跳出rewrite
-
rewrite
语法:rewrite 正则表达式 定向后的位置 模式
应用位置:
server、location、if
样例:
goods-3.html ---->goods.php?id=3 rewrite goods-([\d]+)\.html$ goods.php?id=$1;