- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
1.描述
nginx 配置文件中语法
2.系统定义变量名
查看nginx有权引用的变量名: more /application/nginx/conf/fastcgi.conf
3.常用命令
if
语法:
if 空格 (条件) {
重写模式
}
1
2
3
样例:
// 请求方法
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,因此 会循环重定向.
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
set
语法:
set #变量
1
样例:
//判断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;
}
1
2
3
4
5
6
7
8
9
10
return #返回状态码
break #跳出rewrite
rewrite
语法:
rewrite 正则表达式 定向后的位置 模式
1
应用位置:
server、location、if
样例:
goods-3.html ---->goods.php?id=3
rewrite goods-([\d]+)\.html$ goods.php?id=$1;
---------------------
作者:silly8543
来源:CSDN
原文:https://www.landui.com/cen50958/article/details/89684758
版权声明:本文为博主原创文章,转载请附上博文链接!
售前咨询
售后咨询
备案咨询
二维码
TOP