07-Location之正则匹配
大网站专门有自己的图片服务器,起码也得单独放一个目录里面。
淘宝网有些图片开启了防盗链(即使是小图片,也不让你下载,真小气)。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之正则匹配的更多相关文章
- 07 nginx Location之正则匹配
一:Location之正则匹配 再来看,正则也来参与. location / { root /usr/local/nginx/html; index index.html index.htm; ...
- Nginx 笔记与总结(7)Location:正则匹配
在 /usr/local/nginx/conf/nginx.conf 的默认 server 段中,保留默认的 location 信息(之前测试的 location 配置删除): location / ...
- Nginx 笔记与总结(6)Location:精准匹配
在 /usr/local/nginx/conf/nginx.conf 的 server 段中,location 表示根据 URI 来进行不同的定位:把网站的不同部分定位到不同的处理方式上,例如遇到 . ...
- nginx location 正则匹配
nginx 统计语句1.根据访问IP统计UV awk '{print $1}' access.log|sort | uniq -c |wc -l2.统计访问URL统计PV awk '{print $7 ...
- shell grep正则匹配汉字
Shell grep正则匹配中文 测试文本 demo_exe.c,内容如下,需要注意保存的编码格式,对输出到终端有影响: 我们中文操作系统ASNI默认是GBK的. #include<stdio. ...
- 详解一个自己原创的正则匹配IP的表达式
这里给大家详细讲解一下一个匹配IP地址的正则表达式, 有关正则方面的知识,会在详细的讲解中提到. 在讲解之前,我先给大家介绍一下,ip地址的生成规则. IP地址,是由32位数字二进制转为四个十进制的字 ...
- Aho-Corasick算法、多模正则匹配、Snort入门学习
希望解决的问题 . 在一些高流量.高IO的WAF中,是如何对规则库(POST.GET)中的字符串进行多正则匹配的,是单条轮询执行,还是多模式并发执行 . Snort是怎么组织.匹配高达上千条的正则规则 ...
- iOS 中的正则匹配(工具类方法)
正则表达式 正则表达式是对字符串操作的一种逻辑公式, 用事先定义好的一些特定字符.及这些特定字符的组合, 组成一个"规则字符串", 这个"规则字符串"用来表达对 ...
- js:通过正则匹配获取页面的url中的参数
简介:获取页面参数 原生js: //通过正则匹配获取当前页面的url中的参数 function getUrlParam(name){ var reg = new RegExp("(^|&am ...
- 正则匹配ts的引用
ts文件引入代码如下: import { IView, GridView, Sizing as GridViewSizing, Box, IGridViewStyles } from './gridv ...
随机推荐
- canvas 创建颜色渐变柱状图
最终结果: 代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...
- 混用Application.LoadLevel 和 PhotonNetwork.LoadLevel
最近这一周从上周五晚上加完班回家夜里都12点了. 又赶紧送孩子去儿童医院 .. 就肺炎住院了. 真是有啥别有病呢. 悲剧的是我周三夜里陪了一夜后. 转天晚上也发烧了.. 周四 周五输了两天液. ...
- 前端之JavaScript 03
window对象 所有浏览器都支持 window 对象.概念上讲.一个html文档对应一个window对象.功能上讲: 控制浏览器窗口的.使用上讲: window对象不需要创建对象,直接使用即可. W ...
- initWithImage和imageWithContentsOfFile的区别
UIImageView *imageView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"icon ...
- SSH项目配置数据源的方法(jndi)
1.在tomcat6.0/conf/context.xml加入以下代码 [xhtml] view plain copy <Resource name="jdbc/oracleD ...
- 《DSP using MATLAB》示例Example7.18
代码: M = 33; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; T1 = 0.1095; T2 = 0.598; Hrs = [zeros(1,11) ...
- 初识ADO.NET
摘要 作为.NET框架最重要的组件之一,ADO.NET扮演着应用程序与数据交互的重要的角色.本文将从宏观的角度来探讨ADO.NET,和大家一起了解ADO.NET来龙去脉以及ADO.NET的主要组成部分 ...
- ArcGIS破解配置及oracle文件配置
1.破解配置 2.oracle文件配置
- DLatch by Verilog
//-----------------------------------------------------// Design Name : dlatch_reset// File Name : ...
- HTTP API 设计指南
本指南描述了一系列 HTTP+JSON API 的设计实践, 来自并展开于 Heroku Platform API 的工作.本指南指导着Heroku内部API的开发,我们希望也能对Heroku以外的A ...