`

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中location、rewrite用法总结

    主要介绍了详解nginx中location、rewrite用法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

    本文详细讲述了Nginx location正则写法,Nginx 的Rewrite规则以及Nginx.conf中if指令与全局变量

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

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

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

    主要介绍了nginx location中uri的截取的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Nginx常用Rewrite伪静态法则

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

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

    本篇文章主要介绍了详解nginx配置location总结及rewrite规则写法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    详解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搭建配置详细说明

    3.4. nginx重要指令之location 4. nginx中的rewrite 4.1. 什么是rewrite 4.2. rewrite的命令的作用域和优先级 4.3. if指令 4.3.1. if指令的语法 4.3.2. if指令中使用的逻辑运算符 4.3.3. If指令中可以使用的...

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

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

    nginx 伪静态Rewrite正则资源汇总

    中间用到了{6}指前面的字符得复6次,然后平移动linux系统下面,采用nginx 的Rewrite来重写url 结果加载nginx的时候提示报错 代码如下: rewrite ^/(.{6})(\d{3})(.+)/php/ http://www.xxx.com/qq$2.apk break; 找了...

    nginx重写rewrite基础及实例分享

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

    Nginx+常见应用技术指南[Nginx+Tips]+第二版

    三、 Nginx Rewrite 四、 Nginx Redirect 五、 Nginx 目录自动加斜线: 六、 Nginx Location 七、 Nginx expires 八、 Nginx 防盗链 九、 Nginx 访问控制 十、 Nginx 日志处理 十一、 Nginx Cache 十二、 Nginx 负载...

    Nginx本地目录映射实现代码实例

    比如想通过浏览器http://huoche.7234.cn/images/jb51/4n5r2x2bwa2.jpg访问到系统目录/image_data/2016/04/29/10/abc.jpg需要在nginx.conf中对应的server {}下添加location规则,配置如下: location /image/ { ...

    Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例

    Yii的Nginx rewrite 如下为nginx yii的重写 server { set $host_path /data/site/www.jb51.net; access_log /data/logs/nginx/www.jb51.net_access.log main; server_name jb51.net www.jb51.net; root $host_path...

    nginx反向代理导致session失效的问题解决

    两边通过同一个nginx进行反向代理,nginx配置大致如下, location /health/ { proxy_pass http://192.168.40.159:8081/health/; #无问题的配置 } location /health-dev/ { proxy_pass ...

    Nginx_常见应用技术指南第二版

    Nginx Rewrite 四、 Nginx Redirect 五、 Nginx 目录自动加斜线: 六、 Nginx Location 七、 Nginx expires 八、 Nginx 防盗链 九、 Nginx 访问控制 十、 Nginx日志处理 十一、 Nginx Cache 十二 、 Nginx 负载均衡 ...

Global site tag (gtag.js) - Google Analytics