大网站专门有自己的图片服务器,起码也得单独放一个目录里面。

淘宝网有些图片开启了防盗链(即使是小图片,也不让你下载,真小气)。163新闻可以下载。


用正则匹配uri中的image,就是说你的uri中到底有无image。


为什么是404呢?

因为你访问的是index.html,它的根目录root是/usr/local/nginx/html/。/usr/local/nginx/html/下面哪来的image目录和logo.jpeg啊。

由于image目录是和index.html都在html目录下,所以图片得以显示出来。


动静分离:把静态的js、css和图片分离出去吗?分到别的目录甚至的别的服务器。你会说没有任何难度啊。image的地址的uri左边不就是一个斜线吗?

访问图片地址的时候,找到了这张图片,找到了就说明它来到了html目录下,来到了html目录下就证明location段生效了。这个location段为什么生效了?因为这个image地址的uri左边不就是一个斜线吗?那不就匹配上了吗?但是它匹配的非常的短,只匹配了一条斜线。


单纯只讨论正则。你要是遇上image单独拿出来说话。单独讨论正则。

普通的一条斜线可以匹配uri:http://192.168.118.128/image/logo.jpeg,正则也可以匹配uri:http://192.168.118.128/image/logo.jpeg,这个时候它俩谁发生作用?精准和普通匹配冲突的时候,是精准匹配先发挥作用。

 现在,又多了一个正则和普通的做匹配,也冲突了,此时谁发挥作用?


如果你用~号指定了正则,它就会再用正则去匹配,前面已经匹配过了后面有正则表达式还拿正则表达式去匹配干嘛?这就说明正则表达式要是能匹配成功肯定要覆盖前面的成果。否则如果你不覆盖你还费这个劲干嘛。普通就是不用正则也不用精准的那个匹配,它匹配最长的而且是记住那个结果,然后是正则表达式开始检查。按照正则表达式的顺序开始检查,一旦要是检查到了哪个正则表达式能匹配立即就结束了,而且这个选项就要被用上。


按理说这个正则表达式要发挥作用啊


正则是从开头到结尾啊还是说半道上有个image就行啊。虽然说是404,但是你是从哪个目录上去找图片的这个得搞清楚。看看错误日志

正则已经匹配成功了,别以为是404就是一样的,其实是错误的情况有很多种。已经到了/var/www/image/目录下去找了,只不过多了image而已。

修改:

成功了!

正则表达式把上一个location的功能给覆盖了。其实第一个location寻找了也发挥作用了。但是单对于image而言又做了特殊处理。对于image这一块,我有我自己的正则语法,匹配到/var/www/(不是/var/www/image/)目录下,所以发挥了作用。



注意要使匹配生效,必须得/var/www/html/foo/目录存在并且目录下有索引文件才能生效啊,不然匹配完成一样会报404错误。不是可以匹配就一定会有效果。

07-Location之正则匹配的更多相关文章

  1. 07 nginx Location之正则匹配

    一:Location之正则匹配 再来看,正则也来参与. location / { root   /usr/local/nginx/html; index  index.html index.htm; ...

  2. Nginx 笔记与总结(7)Location:正则匹配

    在 /usr/local/nginx/conf/nginx.conf 的默认 server 段中,保留默认的 location 信息(之前测试的 location 配置删除): location / ...

  3. Nginx 笔记与总结(6)Location:精准匹配

    在 /usr/local/nginx/conf/nginx.conf 的 server 段中,location 表示根据 URI 来进行不同的定位:把网站的不同部分定位到不同的处理方式上,例如遇到 . ...

  4. nginx location 正则匹配

    nginx 统计语句1.根据访问IP统计UV awk '{print $1}' access.log|sort | uniq -c |wc -l2.统计访问URL统计PV awk '{print $7 ...

  5. shell grep正则匹配汉字

    Shell grep正则匹配中文 测试文本 demo_exe.c,内容如下,需要注意保存的编码格式,对输出到终端有影响: 我们中文操作系统ASNI默认是GBK的. #include<stdio. ...

  6. 详解一个自己原创的正则匹配IP的表达式

    这里给大家详细讲解一下一个匹配IP地址的正则表达式, 有关正则方面的知识,会在详细的讲解中提到. 在讲解之前,我先给大家介绍一下,ip地址的生成规则. IP地址,是由32位数字二进制转为四个十进制的字 ...

  7. Aho-Corasick算法、多模正则匹配、Snort入门学习

    希望解决的问题 . 在一些高流量.高IO的WAF中,是如何对规则库(POST.GET)中的字符串进行多正则匹配的,是单条轮询执行,还是多模式并发执行 . Snort是怎么组织.匹配高达上千条的正则规则 ...

  8. iOS 中的正则匹配(工具类方法)

    正则表达式 正则表达式是对字符串操作的一种逻辑公式, 用事先定义好的一些特定字符.及这些特定字符的组合, 组成一个"规则字符串", 这个"规则字符串"用来表达对 ...

  9. js:通过正则匹配获取页面的url中的参数

    简介:获取页面参数 原生js: //通过正则匹配获取当前页面的url中的参数 function getUrlParam(name){ var reg = new RegExp("(^|&am ...

  10. 正则匹配ts的引用

    ts文件引入代码如下: import { IView, GridView, Sizing as GridViewSizing, Box, IGridViewStyles } from './gridv ...

随机推荐

  1. 使用hping3/nping施行DoS攻击

    DDoS攻击是常见的攻击方式,每小时大约发生28次.http://www.digitalattackmap.com提供在世界范围内的DDoS实时攻击分布图: 从DDoS攻击的地图上就可以看出国际形势: ...

  2. HTTP浅析

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  3. 网络爬虫必备知识之requests库

    就库的范围,个人认为网络爬虫必备库知识包括urllib.requests.re.BeautifulSoup.concurrent.futures,接下来将结对requests库的使用方法进行总结 1. ...

  4. Android应用框架-Volley网络通信框架

    1.Volley简介: Volley是Google 推出的 Android 异步网络请求框架和图片加载框架. 在 Google I/O 2013 大会上发布. 2.Volley特点 扩展性强. And ...

  5. iOS10修改电池状态栏的方法

  6. NOIP2013DAY1题解

    T1转圈游戏 十月のsecret 题解:快速幂 代码: #include<iostream> #include<cstring> #include<cstdio> ...

  7. win10 svn server安装过程中到starting service时失败

    当安装到Start Service阶段后,将会出错并会弹出一个对话框,提示是否要retry. (此时SVN服务软件已经安装完毕,仅仅是无法通过证书验证,无法启动服务),如果此时选择对话框中的cance ...

  8. Webpack-dashboard 简单使用

    1. 安装 npm install webpack-dashboard --save-dev 2. 配置说明 webpack config // Import the plugin: var Dash ...

  9. 致Oracle DBA 的一封信 (网上流传)

    1. 数据库的可用度,DBA 说了“不算”   --物化视图,加快查询速度 某些时候数据库的可用性,并不由DBA所设定.因为即使DBA对数据库有绝对掌控权,但用户可能从自己的工作和应用角度,与DBA的 ...

  10. PTA 是否同一棵二叉搜索树(25 分)

    是否同一棵二叉搜索树(25 分) 给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到.例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始 ...