博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx重定向规则入门
阅读量:7124 次
发布时间:2019-06-28

本文共 1259 字,大约阅读时间需要 4 分钟。

nginx重定向规则的入门实例

时间:2015-12-17 15:18:03来源:网络
导读:nginx重定向规则,Nginx的重定向模块HttpRewriteModule的用法说明,nginx重定向的IF条件判断等。
 

Nginx的重定向用到了Nginx的HttpRewriteModule。

使用:

rewrite命令

nginx的rewrite相当于apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就可以直接使用),它可以用在server,location 和IF条件判断块中,命令格式如下:

rewrite 正则表达式 替换目标 flag标记
flag标记可以用以下几种格式:
last – 基本上都用这个Flag。
break – 中止Rewirte,不在继续匹配
redirect – 返回临时重定向的HTTP状态302
permanent – 返回永久重定向的HTTP状态301(301重定向)
例如下面这段设定nginx将某个目录下面的文件重定向到另一个目录,$2对应第二个括号(.*)中对应的字符串:
 

复制代码代码如下:
location /download/ {
rewrite ^(/download/.*)/m/(.*)\..*$ $1/nginx-rewrite/$2.gz break;
}

nginx重定向的IF条件判断

在server和location两种情况下可以使用nginx的IF条件判断,条件可以为以下几种:

正则表达式
如:
匹配判断
~  为区分大小写匹配; !~为区分大小写不匹配
 ~* 为不区分大小写匹配;!~为不区分大小写不匹配
例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下:
 

复制代码代码如下:
if ($http_user_agent ~ MSIE) {
rewrite ^(.*)$ /nginx-ie/$1 break;
}

文件和目录判断

  -f和!-f判断是否存在文件
 -d和!-d判断是否存在目录
 -e和!-e判断是否存在文件或目录
 -x和!-x判断文件是否可执行
例如下面设定nginx在文件和目录不存在的时候重定向:
 

复制代码代码如下:
if (!-e $request_filename) {
proxy_pass http://127.0.0.1;
}

return

返回http代码,例如设置nginx防盗链:
 

复制代码代码如下:
location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.jefflei.com www.leizhenfang.com;
if ($invalid_referer) {
return 404;
}
}

set

设置nginx变量

原文链接: Jeff's Blog http://www.jefflei.com/post/1015.html

 

转载地址:http://fiael.baihongyu.com/

你可能感兴趣的文章
.NET Core中的去虚
查看>>
滴滴开源支撑业务代码重构工具Rdebug
查看>>
联合国儿童基金会投资六家区块链初创企业,目标是解决“全球性挑战”
查看>>
CNCF宣布Envoy项目正式毕业
查看>>
百度App网络深度优化系列(一):DNS优化
查看>>
Oracle发布多语种虚拟机平台GraalVM 1.0
查看>>
GCM 3.0采用类似方式向Android、iOS和Chrome发送消息
查看>>
如何进行5万并发用户负载测试?
查看>>
Java日志性能那些事
查看>>
埃森哲、亚马逊和万事达卡抱团推出的区块链项目有何神通?
查看>>
书评 - 《展望敏捷软件测试》
查看>>
Linux之父为过去的言行道歉,宣布离开社区反思
查看>>
使用Visual Studio Code进行Swift开发
查看>>
AWS Amplify Console:赋予应用程序快速部署的能力
查看>>
C#的未来:不可变变量
查看>>
Uber推出数据湖集成神器DBEvents,支持MySQL、Cassandra等
查看>>
InfoQ趋势报告:架构和设计领域技术演变详解
查看>>
揭秘码云:全球第二大代码托管平台的核心架构
查看>>
距离QCon纽约还有3个礼拜:新的演讲、播客节目和研讨会
查看>>
Spark Streaming中流式计算的困境与解决之道
查看>>