nginx下rewrite的使用

 我来答
大沈他次苹0B
2022-07-21 · TA获得超过7320个赞
知道大有可为答主
回答量:3059
采纳率:100%
帮助的人:177万
展开全部

rewrite 功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。
rewrite 只能放在 server{} , location{} , if{} 中,并且只能对域名后边的除去传递的参数外的字符串起作用

If 空格 (条件) {设定条件进行重写}
条件的语法:
1. “=” 来判断相等,用于字符比较
2. “~” 用正则来匹配(表示区分大小写), “~*” 不区分大小写
3. “-f -d -e” 来判断是否为文件、目录、是否存在

语法: return code;
停止处理并返回指定状态码给客户端。
if ($request_uri ~ *.sh ){
return 403
}

语法: set variable value;
定义一个变量并复制,值可以是文本、变量或者文本变量混合体

语法: rewrite regex replacement [flag]{last / break/ redirect 返回临时302/ permant 返回永久302}
last : 停止处理后续的rewrite指令集、 然后对当前重写的uri在rewrite指令集上重新查找
break : 停止处理后续的rewrite指令集 ,并不会重新查找

例1:

访问 192.168.10.68:8088 的请求会重定向到 http://www.baidu.com

例2:

表面看 rewrite 和 location 功能有点像,都能实现跳转,
主要区别在于 rewrite 是在同一域名内更改获取资源的路径,
而 location 是对一类路径做控制访问或反向代理,可以 proxy_pass 到其他机器。
很多情况下rewrite也会写在 location 里,它们的执行顺序是:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式