`
即可偶
  • 浏览: 21239 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

nginx 4种flag

阅读更多

转载:http://www.netingcn.com/nginx-rewrite-flag.html

 

利用nginx的rewrite的指令,可以实现url的转向,对于rewrtie有四种不同的flag,分别是redirect、 permanent、break和last。其中前两种是跳转型的flag,后两种是代理型。跳转型是指有客户端浏览器重新对新地址进行请求,代理型是在 WEB服务器内部实现跳转的。

  • redirect:302跳转到rewrtie后面的地址。
  • permanent:301永久调整到rewrtie后面的地址,即当前地址已经永久迁移到新地址,一般是为了对搜索引擎友好。
  • last:将rewrite后的地址重新在server标签执行。
  • break:将rewrite后地址重新在当前的location标签执行。

使用root或proxy_pass指定源,last,break都可以,但是结果可能会有差别 ,后面用例子说明;使用alias指定源,必须使用last。假如有如下配置:

	location / {
	    root   /var/www/html;
	    index  index.html index.htm;
	    rewrite "/x/t.html" /y/t.html break;
	}

	location /y/ {
	    root  /var/www/html/other;
	}

当请求/x/t.html,符合rewrite规则,所以进行调整,调整的地址为/y/t.html,由于使用的flag是break,所以在 “location /”中进行跳转,结果是/var/www/html/y/t.html。但如果flag为last,那么/y/t.html将在server标签中重新执 行,由于存在一个“location /y/”,所以跳转被重新指定到“location /y/”标签,所以这个时候的结果为/var/www/html/other/y/t.html。

注意:使用last,如果配置不当,可能引起死循环。例如:

	location /x/ {
	    proxy_pass http://my_proxy;
	    rewrite "^/x/(.*)\.html$" /x/1.html last;
	}
分享到:
评论

相关推荐

    nginx搭建配置详细说明

    4. nginx中的rewrite 4.1. 什么是rewrite 4.2. rewrite的命令的作用域和优先级 4.3. if指令 4.3.1. if指令的语法 4.3.2. if指令中使用的逻辑运算符 4.3.3. If指令中可以使用的变量 4.3.4. if指令实例 4.4. ...

    利用nginx如何匹配多个条件

    问题分析 熟悉nginx的都知道,nginx不想其他语言那样可以支持逻辑或与运算,也不支持if else和if嵌套。 因为公司内部服务器不允许外部...$remote_addr不匹配 $flag为01,$http_x_forwarded_for也不匹配 $flag为011

    nginx rewrite重写规则与防盗链配置方法教程详解

    导读:nginx rewrite重写规则与防盗链配置方法,rewrite规则格式中flag标记的几种形式,盗链时返回403错误,允许的域名直接跟在第二行的域名后面。 nginx rewrite重写规则与防盗链配置方法如下所示: nginx rewite...

    docker-nginx-http3:带有Nginx 1.19.4(主线),HTTP3(QUIC),TLSv1.3、0-RTT,brotli,NJS支持和10 MB大小的Alpine Linux映像。 所有功能均建立在最新优势上,可实现最佳性能。 建在边缘,为边缘

    带有nginx 1.19.5 (主线),HTTP / 3(QUIC),TLSv1.3、0-RTT,brotli,NJS,Cookie-Flag支持的Alpine Linux映像。 全部建立在最前沿。 建在边缘,为边缘。 的聪明人通过项目提供的HTTP / 3支持。 可在上找到...

    Nginx服务器中的重定向配置参考指南

    flag标记可以用以下几种格式: last – 基本上都用这个Flag。 break – 中止Rewirte,不在继续匹配 redirect – 返回临时重定向的HTTP状态302 permanent – 返回永久重定向的HTTP状态301 例如下面这段设定nginx...

    Nginx配置编写时支持逻辑运算与大小写字母转换的方法

    逻辑运算 nginx的配置中不支持if条件的逻辑与&& 逻辑或|| 运算 ,而且不支持if的嵌套语法,否则会报下面的错误:nginx: [emerg] invalid condition。...set $flag 0; if ($uri ~ ^/thumb/[0-9]+_160.jpg$

    Nginx实现if多重判断配置方法示例

    nginx的配置中不支持if条件的逻辑与/逻辑或运算 ,并且不支持if的嵌套语法,我们可以用变量的方式来实现: 首先是伪代码(即不被nginx支持),写在这里只是为了方便理解: 代码如下: if ($remote_addr ~ “^(12.34...

    Nginx URL重写rewrite机制原理及使用实例

    URL重写有利于网站首选域的确定,对于同一资源页面多条路径的...rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement,结尾是flag标记。 rewrite语法格式及参数语法说明如下: rewr

    base_web_nginx_php_74:基础知识库WEB Nginx PHP 7.4

    FLAG = ctfhub {nginx_php_74} 使用此映像时,应重写flag.sh。 $FLAG不是强制性的,但我希望您能使用它! 档案文件 src网站源码 index.php ...ETC Docker文件 docker-compose.yml Docker文件 FROM ctfhub/base_...

    Nginx Rewrite使用场景及代码案例详解

    Nginx Rewrite使用场景 ... 2.URL伪静态,将动态页面显示为静态页面方式的一种技术,减少动态URL地址对外暴露过多的参数,提升更高的安全性。...4种flag last 停止处理后续rewrite指令集,跳出location作用域,并开始搜

    nginx重写rewrite基础及实例分享

    nginx rewrite 正则表达式匹配 大小写匹配 ~ 为区分大小写匹配 ~* 为不区分大小写匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配 -f和!-f用来判断是否存在文件 -d和!-d用来判断是否存在...

    Nginx Rewrite使用场景及配置方法解析

    Nginx Rewrite使用场景 1.URL地址跳转,例如用户访问pm.com将其跳转到baidu.com或者当用户通过http的方式访问时,将其跳转至https的方式访问。 2.URL伪静态,将动态页面显示为静态页面方式的一种技术,减少动态URL地址...

    Nginx 转发匹配规则的实现

    三.rewrite指令的最后一项参数为flag标记,flag标记有 last 相当于 apache 里面的[L]标记,表示 rewrite。 break 本条规则匹配完成后,终止匹配,不再匹配后面的规则。 redirect 返回302临时重定

    nginx rewrite 伪静态配置参数详细说明

    flag标记有: * last 相当于Apache里的[L]标记,表示完成rewrite * break 终止匹配, 不再匹配后面的规则 * redirect 返回302临时重定向 地址栏会显示跳转后的地址 * permanent 返回301永久重定向 地址栏会显示跳转后...

    Nginx Rewrite规则与使用介绍和技巧实例

    三.rewrite指令的最后一项参数为flag标记,flag标记有: 1.last 相当于apache里面的[L]标记,表示rewrite。 2.break本条规则匹配完成后,终止匹配,不再匹配后面的规则。 3.redirect 返回302临时重定向,浏览器地址...

    nginx-virtual-host:[已存档] Nginx虚拟主机

    :waving_hand: 嗨,我是@actcmsvn :eyes: 我感兴趣的是 ... :seedling: 我目前正在学习... :revolving_hearts: 我正在寻求合作... :closed_mailbox_with_raised_flag: 如何到达我...

    Apache Nginx 禁止目录执行PHP脚本文件的方法

    我们在搭建网站的时候,可能需要单独对一些目录进行...下面举例说明在Apache或Nginx下如何设置禁止某个目录执行php文件。 1.Apache配置 php_flag engine off Order allow,deny Deny from all </Directo

    如何在Apache和Nginx禁止上传目录里PHP的执行权限

    另外一种方法,是设置在htaccess里面的,这个方法比较灵活一点,针对那些没有apapche安全操作权限的网站管理员: Apache环境规则内容如下:Apache执行php脚本限制 把这些规则添加到.htaccess文件中 代码如下: ...

    self-signed-docker-nginx-reverse-proxy

    此存储库中的脚本可自动执行“ 的步骤。 如果您想使用SSL快速实现Docker服务,这将很方便。 总的来说,对于更严重的...flag arguments: -h, --help show this help message and exit -n, --name NAME Docker cont

Global site tag (gtag.js) - Google Analytics