您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
nginx-nginx Rewrite语法详解
发布时间:2017-11-23 12:19:56编辑:雪饮阅读()
rewrite 重写
重写中用到的指令
if (条件) {} 设定条件,再进行重写
set #设置变量
return #返回状态码
break #跳出rewrite
rewrite #重写
If 语法格式
If 空格 (条件) {
重写模式
}
条件又怎么写?
答:3种写法
1: “=”来判断相等, 用于字符串比较
2: “~” 用正则来匹配(此处的正则区分大小写)
~* 不区分大小写的正则
3: -f -d –e分别来判断是否为文件,为目录,是否存在.
示例:
(1)封禁指定ip访问,该ip访问会出现403界面
location / {
if ($remote_addr = 192.168.101.101) {
return 403;
}
root z.com;
index index.html;
}
(2)检测用户访问是否是ie浏览器,如果是ie浏览器则重定向到ie.html
注意:根据实际情况下的$http_user_agent日志信息,为了实验,这里只是用了我自己的ie浏览器测试发现ie访问的user_agent中包含Trident,另外break是必须的,否则会死循环。
location / {
if ($http_user_agent ~ Trident) {
rewrite ^.*$ /ie.html;
break;
}
root z.com;
index index.html;
}
(3)访问到不存在的页面,则重定向到404页面中。
location / {
if (!-e $document_root$fastcgi_script_name) {
rewrite ^.*$ /404.html break;
}
root z.com;
index index.html;
}
(4)set、~*的使用,实现实例(2)
location / {
if ($http_user_agent ~* trident) {
set $isie 1;
}
if ($fastcgi_script_name = ie.html) {
set $isie 0;
}
if ($isie = 1) {
rewrite ^.*$ /ie.html;
break;
}
root z.com;
index index.html;
}
关键字词:nginx,rewrite,重写,url