Nginx极客时间:rewrite阶段的rewrite模块:重写URL(rewrite指令)

上一节 《rewrite阶段的rewrite模块:return指令》 中,提到了rewrite阶段的rewrite模块提供的两个指令:return指令error_page指令,用于做重定向及一些简单的返回。


除此之外,rewrite模块还提供了 rewrite指令
用于修改用户传入Nginx的URL的值,随后按照修改后的URL再进行匹配 location配置块,以完成重定向的目的。



rewrite指令的格式:
在这里插入图片描述
在这里插入图片描述


regex:表示原始URL的正则表达式;

replacement:待替换的URL:
当replacement以 http:// 或者 https:// 或者 $schema 开头,则直接返回 302 重定向;

flag:替换URL后的处理动作,flag可以是以下几个类型:

--last		:	继续向下执行,用replacement这个URI进行新的location匹配
--break		:	停止当前脚本指令的执行
--redirect	:	返回 302 重定向
--permanent	:	返回 301 重定向

rewrite指令使用举例:

# 目录结构:
html/first/1.txt
html/second/2.txt
html/third/3.txt
server {
	root html/;

	location /first {
		rewrite /first(.*) /second$1 last;  # rewrite regex_uri replacement flag; 
										    # replacement = /second$1, 即使用 /second$1 替代 /first(.*),再进行location的匹配
										    # flag = last, 即在替换URI后继续向下执行return语句
		return 200 'first!';
	}

	location /second {
		rewrite /second(.*) /third$1 break;
		return 200 'second!';
	}

	location /third {
		return 200 'third!';
	}
}


正则表达式:
在这里插入图片描述



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值