Nginx Rewrite概述和基本操作

常用的Nginx Rewreite正则表达式

^ : 匹配输入字符串的起始位置

$ : 匹配输入字符串的结束位置

* : 匹配前面的字符零次或多次。如"ol*"能匹配"o"及"ol"、"oll"

+ : 匹配前面的字符一次或多次。如"ol+"能匹 配"ol"及"oll","olll",但不能匹配"o"

? : 匹配前面的字符零次或一次,例如"do(es)?"能匹配"do”或者"does","?"等效于"{0,1}”

. : 匹配除"\n"之外的任何单个字符,若要匹配包括"\n"在内的任意字符,请使用诸如"[. \n]"之类的模式

\ : 将后面接着的字符标记为一个特殊字符或一个原义字符或一个向后引用。如\n"匹配一个换行符,而"\$"则匹配 "$"

{n} : 重复 n 次

{n,} : 重复 n 次或更多次

{n,m} : 重复n到m次

[ ] : 定义匹配的字符范围

[c] : 匹配单个字符c

[a-z] : 匹配a-z小写字母的任意一个

[a-zA_Z0-9] : 匹配所有大小写字母或数字

() : 表达式的开始和结束位置

| : 或运算符

\d : 匹配纯数字[0-9]   D取反

\s : 空白符           S取反

\w : 任意单词字符包括下划线  W取反


从功能看 rewrite和 location似乎有点像,都能实现跳转,主要区别在于rewrite是在同一域名内更改获取资源的路径,而location是对一类路径做控制访问或反向代理,还可以proxy_pass 到其他机器。

rewrite : 对访问的地域名或者域名内的URL路径地址重写

location : 对访问的路径做访问控制或者代理转发


location

location分为三类

精准匹配:location = / {…}

一般匹配:location / {…}

正则匹配:location ~ / {…}

location 常用的匹配规则

= : 进行普通字符精确匹配,也就是完全匹配。

^~ : 表示普通字符匹配,使用前缀匹配,如果匹配成功,则不再匹配其他 location
: 区分大小写的匹配

~* :不区分大小写的匹配

!~ :区分大小写的匹配取非

!~*:不区分大小写的匹配取非

location优先级

首先精确匹配 =

其次前缀匹配 ^~

其次是按文件中顺序的正则匹配 *

然后匹配不带任何修饰的前缀匹配

最后叫给 / 通用匹配

location 示例说明

(1)location = / {}
=为精确匹配 / ,主机名后面不能带任何字符串,比如访问 / 和 /data,则 / 匹配,/data 不匹配
再比如 location = /abc,则只匹配/abc ,/abc/或 /abcd不匹配。若 location  /abc,则即匹配/abc 、/abcd/ 同时也匹配 /abc/。

(2)location / {}
因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 比如访问 / 和 /data, 则 / 匹配&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值