首页>建站相关>rewrite中的permanent,redirect,last以及break

rewrite中的permanent,redirect,last以及break

rewrite的优先级

在server块下,会优先执行rewrite部分,然后才会去匹配location块。server块中的rewrite,后缀break和last没什么区别,都会去匹配location,所以没必要用last再发起新的请求,可以留空。

location中的rewirte

1.rewrite break
-- url重写后,直接使用当前资源,不再执行location里余下的语句,完成本次请求,地址栏url不变

2.rewrite last
-- url重写后,马上发起一个新的请求,再次进入server块,重试location匹配,超过10次 匹配不到报500错误,地址栏url不变

3.rewrite redirect
-- 返回302临时重定向,地址栏显示重定向后的url,爬虫不会更新url(因为是临时)

4.rewrite permanent
-- 返回301永久重定向,地址栏显示重定向后的url,爬虫更新url

如果不写last和break,那么流程就是依次执行这些rewrite。

使用last会对server标签重新发起请求

如果location中rewrite后是对静态资源的请求,不需要再进行其他匹配,一般要使用break或不写,直接使用当前location中的数据源,完成本次请求。

如果在location中rewrite之后,还需要进行其他处理,如动态fastcgi请求(.php.jsp)等,要用last继续发起新的请求。(根的location使用last比较好,因为如果有.php等fastcgi请求还要继续处理)

使用alias指定源:必须使用last

if语句主要用来判断一些在rewrite语句中无法直接匹配的条件,比如检测文件存在与否,httpheader,cookie等

location匹配规则及优先级

1.= 严格匹配这个查询。如果找到,停止搜索。
2.^~ 匹配路径的前缀,如果找到,停止搜索。
3.~ 为区分大小写的正则匹配
4.~* 为不区分大小写匹配
5.优先级: =^~~/~*,无

break语句

放在server块rewrite语句前面,如果是直接请求某个真实存在的文件,则用break语句停止rewrite检查:

if(-f $request_filename){
    break;
} 

资料来源

Nginx中的rewrite指令

标签: nginx

移动端可扫我直达哦~

推荐阅读

nginx 2023-11-08

nginx下的301跳转与302跳转

301跳转or302跳转301跳转301代表这个定向是永久的,搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址。而302则向搜索引擎声明这是暂时的重定向,搜索引擎会以为新的网址只是暂时的,会抓取新的内容而保存旧的网址。30...

建站相关 nginx

nginx 2023-11-07

nginx网站301跳转与强制通过https访问

关于301重定向301跳转是一种永久性重定向,向搜索引擎和用户说明原URL地址已经永久性更改为新的URL地址,使得搜索引擎在收录网站时可以将原URL地址的权重转移到新的URL地址上,同时也能方便用户访问到正确的内容。小鸟数据沉浮史小鸟...

建站相关 nginx

nginx 2022-10-09

nginx让来访者跳转至https页面

配置服务器实现了Nginx的https访问,配置文件同时支持了80端口以及443端口的访问,详见博文《为nginx服务器开启https》,如果只希望用户通过https访问站点,我们还需要改动一下配置文件,在80端口的设置部分写入一条跳...

建站相关 nginx

nginx 2022-10-09

为nginx服务器开启https服务

随着支持https标准的站点越来越多,浏览器上对于非https站点的标记也似乎越来越醒目了。所以用LNMP重新搭建服务器系统之后,首先想到的就是启用https。为站点开启https,首先需要一套安全证书,博主的域名购买自阿里云,域名证...

建站相关 nginx

nginx 2022-09-30

nginx环境下的虚拟主机配置

Nginx是一个高性能的HTTP和反向代理web服务器,下图是一个安装于阿里云服务器上Nginx文件目录,其中两个蓝色的是文件夹,可用于存放外部的配置文件,Nginx的核心配置文件是“nginx.conf”,图中其正下方有另一个相似的...

建站相关 nginx

nginx 2022-09-29

nginx禁止来访者通过IP访问

Nginx的主配置文件是 nginx.conf ,在阿里云服务器中,它一般位于 /etc/nginx 目录之下,为了避免频繁改动主配置文件,笔者屏蔽掉了主配置文件中的监听80端口的部分(nginx对443端口的监听默认状态为被注释),...

建站相关 nginx

nginx 2022-09-28

为nginx开启gzip压缩

gzip最早由Jean-loup Gailly和Mark Adler创建,用于unix系统的文件压缩。我们在linux中经常会用到后缀为.gz的文件,它们就是gzip格式的。gzip格式已经成为Internet上使用非常普遍的一种数据...

建站相关 nginx