`

nginx的location与rewrite

 
阅读更多
location有定位的意思,根据uri来进行不同定位
语法:
location [=|~|~*|^~] patt { //中括号可以不写参数,大致分为三类
}

location = patt {} //精准匹配
location patt {}   //普通匹配
location ~ patt{}  //正则匹配

一个server里面可以有多个location,其匹配过程如下:
1.先判断精准匹配,如果命中,立即返回;

2.再判断普通匹配,如果有一个,记录当前匹配,如果有多个,记录“最长”匹配;(只记录,暂时不返回);

3.最后判断正则表达式匹配,以配置文件由上到下的顺序,一旦匹配,立即返回当前匹配结果,并结束匹配,如果没有匹配上,则返回普通匹配的结果

注:普通匹配与在配置文件的顺序无关,正则匹配与在配置文件里面的顺序有关;
?当第一次匹配成功以后,uri里面的里面路径换成匹配结果后,还会到配置文件中继续匹配?

location / { //匹配uri中的"/"
}

rewrite 重写,主要用在server 和 location中
语法:
if 空格 (条件) {} //设定条件,在进行重写
set //设置变量
return //返回状态码
break //跳出rewrite
rewrite //重写

条件有3中写法:
1.“=”判断相等,用于字符串比较
2.“~”正则表达式匹配,区分大小写;加上星号(“~*”)不区分大小写
3.-f -d -e 判断是否为文件,为目录,是否存在

例子:
if ($request_method=POST) {
  return 405;
}

if ($http_user_agent ~ MSIE) {
  rewrite ^.*$ /ie.html;
  break;
}

if (!-e $fastigc_script_name) {
  return 403;
}

分享到:
评论

相关推荐

    nginx配置location总结及rewrite规则写法

    nginx配置location总结及rewrite规则写法

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

    如果一个URL被重写后再次匹配到同一个location块,且这个location块还有Rewrite规则,那么Nginx会在达到设置的最大循环次数(默认为10)时停止重写,并返回500 Internal Server Error错误。 四、使用技巧与注意事项...

    详解nginx中location、rewrite用法总结

    **Nginx中的Location与Rewrite用法详解** 在Nginx服务器配置中,`location`和`rewrite`是两个非常关键的指令,用于处理HTTP请求的路由和URL重写。理解并熟练运用这两个指令对于优化网站性能和提供灵活的URL管理至关...

    nginx设置rewrite规则

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

    nginx中带问号(?) 带参数的rewrite规则

    在Nginx服务器配置中,`rewrite`指令用于URL重写,这在创建动态到静态页面的重定向、实现URL路由、或者根据特定条件改变URL结构时非常有用。当URL中包含问号(`?`)以及参数时,处理起来可能会有些复杂,因为问号及其...

    nginx脚本引擎与rewrite设计原理(一)

    ### Nginx脚本引擎与Rewrite设计原理深入解析 Nginx作为一款高性能的HTTP服务器及反向代理服务器,其强大的rewrite功能是其亮点之一。本文旨在深度剖析Nginx脚本引擎与rewrite设计原理,尤其聚焦于rewrite配置如何...

    nginx中location中关于proxy_pass和rewrite的应用.rar

    在`location`块中,`proxy_pass`和`rewrite`可以一起使用,先执行`rewrite`,然后转发给`proxy_pass`。这种组合使得Nginx能够根据重写后的URL找到正确的上游服务器,并处理请求。例如: ``` location /api { ...

    nginx配置location总结location正则写法及rewrite规则写法

    - `rewrite` 是 Nginx 中的URL重写规则,通常与 `location` 一起使用。它可以改变请求的URI,实现URL美化、隐藏真实路径等功能。 - 一个基本的 `rewrite` 规则格式如下:`rewrite <regex> <replacement> ;` - `...

    nginx rewrite常用示例

    ### Nginx Rewrite 常用示例解析 #### 一、从非-www 版本自动重定向到 www 版本 **应用场景:** 当用户访问 `abc.com`(无 www 的版本)时,需要自动重定向到 `http://www.abc.com`。 **配置示例:** ```nginx ...

    nginx rewrite规则

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

    nginx location配置详细解释.pdf

    除了 `location` 配置外,Nginx 还支持强大的重写规则功能,可以通过 `rewrite` 指令实现 URL 的重定向或修改。以下是几个常用的 `rewrite` 标记: - **last**:继续执行后续的重写规则。 - **break**:终止重写...

    nginx location中uri的截取的实现方法

    当使用`root`时,Nginx不会截取URI,而是将整个请求URI与`root`后面的路径拼接,然后去查找文件。例如: ```nginx location /lctest { root /data/web/; } ``` 对于请求`...

    实例讲解nginx的rewrite规则

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

    Nginx关于location的匹配规则详解.docx

    **Nginx中的Location匹配规则详解** 在Nginx服务器配置中,`location`指令是核心部分之一,用于处理HTTP请求。它根据指定的规则来匹配URL,从而决定如何处理客户端的请求。本文将深入探讨Nginx `location`的匹配...

    详解nginx配置location总结及rewrite规则写法

    在Nginx的配置文件中,location指令用于定义不同的URI请求应该如何被处理,而rewrite规则用于实现URL的重写,这通常用于URL的优化、实现伪静态等功能。 location指令是Nginx配置中非常核心的部分,它可以基于请求的...

    nginx_location

    Nginx 的 `location` 指令是配置 Web 服务器路由请求的关键部分,用于根据请求的 URI 来决定如何处理请求。以下是对 `location` 指令的详细解释和最佳实践: 1. **匹配规则**: - `=`:精确匹配,如果请求的 URI ...

    Nginx常用Rewrite伪静态法则

    Nginx常用Rewrite伪静态法则 信赖此刻大部门用Linux VPS的伴侣都在利用这个敏捷传布的Nginx,本日就清算一下最常见的PHP法式的Rewrite(伪静态法则)。 Wordpress: location / { index index.html index.php; if ...

    详解nginx rewrite和根据url参数location

    首先查看下nginx是否支持rewrite: ./nginx -V 不支持说明安装nginx时候缺少pcre,需要重新安装nginx: #安装pcre wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz tar -zxvf pcre-...

    nginx之rewrite

    rewrite规则在nginx的配置文件中定义,通常在server、location和if指令块中使用。 一、Nginx rewrite规则定义 rewrite规则通过正则表达式匹配请求的URI,并且可以结合标志位来实现URL重写或重定向。使用全局变量...

    让Nginx支持Rewrite功能,所依赖的PCRE包:pcre_8.35

    在Nginx配置文件(通常为`nginx.conf`)中,我们可以使用`rewrite`模块来编写规则。例如: ```nginx location / { rewrite ^/old/(.*)$ /new/$1 permanent; } ``` 这条规则将把所有以`/old/`开头的URL重定向到...

Global site tag (gtag.js) - Google Analytics