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 ...
随机推荐
- Hoeffding inequality
Hoeffding公式为 \epsilon]\leq{2e^{-2\epsilon^2N}}"> 如果把Training error和Test error分别看成和的话,Hoeffdi ...
- ubuntn 配置webpy nginx
webpy环境搭建 在开始webpy搭建之前,有必要熟悉一下什么是fastcgi,因为搭建环境时都是使用这个模式去运行webpy程序的,具体的fastcgi描述可以参考各种百科:fastcgi协议官网 ...
- Spring3.x JSR-303
JSR303介绍 JSR303-Bean Validation描述:This JSR will define a meta-data model and API for JavaBeanTM vali ...
- CSS书写格式
转自: https://segmentfault.com/a/1190000005046830 CSS书写格式 1.格式化代码 1.1文件 [建议]:CSS文件使用无BOM的UTF-8编码 1.2缩进 ...
- openfaas 了解
1. 官方介绍 OpenFaaS (Functions as a Service) is a framework for building serverless functions with Dock ...
- AES前后加密算法代码
首先下载aes.js加密工具类: 本文采用的是 AES/ECB/PKCS5Padding的加密方式进行加密的: js加密写法如下: <!DOCTYPE html> <html lan ...
- maven依赖顺序原则
使用maven的程序员都会遇到一个问题,那就是maven依赖冲突的问题,这会导致ClassNotFound或者MethodNotFound这样的异常.其实只要明白maven依赖的根本性的原则就不怕这样 ...
- hbase使用中需要注意一些问题
接触hbase已经两年之久,但是真正的在实际项目中使用却只有半年的时间,使用过程中,一方面在在为hbase强大的性能兴奋之余,另一方面却也给我和我的团队造成了很多的麻烦,起初在使用我的水平也就停留在会 ...
- ubuntu 设置固定DNS
1.打开 xxx@ubuntu:~$ sudo vim /etc/resolvconf/resolv.conf.d/base 2.输入以下DNS,保存退出. nameserver 8.8.8.8 na ...
- 读写另一EXE的内存
procedure TfrmMain.tmrChangeServerNameTimer(Sender: TObject); function GetProcessID(FileName: string ...