`

nginx rewrite last 与break

阅读更多
一个很简单的nginx的server配置
beacon on;
beacon_cfg /etc/nginx/conf.d/beacon.cfg /etc/nginx/conf.d/channel.cfg;
server {
    listen 80;
    server_name web.com;

    root /var/lib/nginx/mobileapi;

    location / {
        index  index.php index.htm index.html;
    }

    location ~ ^/((?!\.php)\w)+$ {
        rewrite ^/(.*) /$1.php last;
    }

    location ~ ^.+\.php {
        fastcgi_split_path_info ^(.+\.php)(.+)$;
        fastcgi_param  PATH_INFO          $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED    $document_root$fastcgi_path_info;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_read_timeout 500;
        fastcgi_index   index.php;
        include         /etc/nginx/fastcgi.conf;
    }

    error_page  404              /error/404.html;
    error_page  500 502 503 504  /error/50x.html;
}


14行使用的last,last匹配以后会跳出匹配规则重新请求(测试以后发现最多匹配11次)。
如果使用break,则会走完当前location,不会再匹配后面的location,也不会跳出重新请求。不在location里的规则会仍然会生效,如error_page。
在这里如果用break代替last,则服务端会返回php文件,而不会使用fastcgi进程处理php。
分享到:
评论

相关推荐

    Nginx的Rewrite规则与实例

    ### Nginx的Rewrite规则与实例:深入解析与应用 在现代Web服务器管理与运维领域,Nginx因其高效、稳定以及丰富的功能而备受推崇。其中,Rewrite模块是Nginx的一项重要特性,它允许管理员对HTTP请求进行重写、重定向...

    Nginx关于Rewrite执行顺序详解.docx

    在Nginx中,Rewrite模块是实现URL重写的重要工具,它允许我们根据预定义的规则对请求的URL进行转换,从而实现动态URL到静态URL的映射、隐藏真实路径、实现URL路由等目的。这篇文档将深入解析Nginx中Rewrite模块的...

    Nginx配置的rewrite编写时last与break的区别分析

    在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。 location / { proxy_pass http://test; alias /home/...

    实例讲解nginx的rewrite规则

    ### 实例讲解Nginx的rewrite规则 #### 正则表达式匹配 在Nginx中,使用`rewrite`指令可以实现对URL的重写,其中涉及到正则表达式的匹配方式有以下几种: 1. **区分大小写的匹配**:使用`~`符号,例如:`rewrite ^/...

    nginx rewrite规则

    与Apache的`mod_rewrite`模块相比,Nginx的`rewrite`规则在语法和工作方式上有所不同,这使得理解并熟练掌握Nginx的`rewrite`规则成为提升服务器配置能力的关键。 **1. Nginx与Apache的Rewrite规则对比** Apache的...

    nginx设置rewrite规则

    下面将详细介绍如何在LNMP环境中配置Nginx的rewrite规则。 首先,了解rewrite规则的基本概念。Nginx的rewrite模块允许我们根据特定的条件重写请求的URI,这在实现URL路由、隐藏真实路径、SEO优化等方面非常有用。它...

    Nginx中rewrite实现二级域名、三级域名、泛域名、路径的重写[文].pdf

    * `last`:表示完成 rewrite 并停止匹配其他规则。 * `break`:表示终止匹配,不再匹配后面的规则。 * `redirect`:返回 302 临时重定向。 * `permanent`:返回 301 永久重定向。 Nginx 正则表达式匹配 Nginx 中的...

    nginx rewrite规则怎么配置-.docx

    **Nginx Rewrite规则配置详解** 在Web服务器优化和URL管理中,Nginx的Rewrite规则扮演着重要角色。它允许我们根据特定条件重写请求的URL,从而实现动态URL到静态URL的转换、URL规范化、路径重定向等。Nginx的...

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

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

    详解nginx rewrite和根据url参数location

    其中,`<regex>` 是正则表达式,`<replacement>` 是替换后的 URL,`[flag]` 可选标志,如 `last`(停止当前规则集的匹配)、`break`(跳出当前规则)、`redirect`(返回重定向)等。 3. **示例** 例如,将所有以 ...

    浅谈apache和nginx的rewrite的区别

    1. Nginx Rewrite规则相关指令 Nginx Rewrite规则相关指令有if、rewrite、set、return、break等,其中rewrite是最关键的指令。一个简单的Nginx Rewrite规则语法如下: ...2. Nginx与Apache的Rewrite规则实例对比  简单

    nginx rewrite 实现URL跳转的方法

    Rewrite模块是Nginx提供的一个强大功能,它可以在服务器内部将用户请求的URL按照指定规则进行重写和跳转,达到修改用户访问URL的目的。在配置Nginx时,掌握如何使用Rewrite规则对于实现复杂的URL重写和优化网站的SEO...

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

    它支持 Rewrite 模块,该模块是Nginx的一个重要组成部分,负责实现URL的重写与重定向,是SEO优化和网站前端架构中不可或缺的功能。 正则表达式匹配是Nginx Rewrite模块中非常重要的一个功能。Nginx通过使用正则...

    nginx之rewrite

    - `break`:停止当前的rewrite规则,不再处理后续的rewrite规则。 - `redirect`:返回302临时重定向响应。 - `permanent`:返回301永久重定向响应。 七、全局变量可以用做条件判断 全局变量可以用来做条件判断,...

Global site tag (gtag.js) - Google Analytics