最近操作Nginx.conf 的location部分,发现了一个巨坑,在这做个记录

当我用一下配置时

      location = / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}

浏览器域名访问, 死活读不到html内容

改成如下就好了
      location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}

为什么精确匹配不行?很迷

之后查看文档

匹配模式及顺序

匹配字符串分为两种:普通字符串(literal string)和正则表达式(regular expression),其中 ~ 和 ~* 用于正则表达式, 其他前缀和无任何前缀都用于普通字符串。

匹配顺序是:
1、先匹配普通字符串,将最精确的匹配暂时存储;
2、然后按照配置文件中的声明顺序进行正则表达式匹配,只要匹配到一条正则表达式,则停止匹配,取正则表达式为匹配结果;
3、如果所有正则表达式都匹配不上,则取1中存储的结果;
4、如果普通字符串和正则表达式都匹配不上,则报404 NOT FOUND。 location = /uri        =开头表示精确前缀匹配,只有完全匹配才能生效。 location ^~ /uri       ^~开头表示普通字符串匹配上以后不再进行正则匹配。 location ~ pattern     ~开头表示区分大小写的正则匹配。 location ~* pattern    ~*开头表示不区分大小写的正则匹配。 location /uri          不带任何修饰符,表示前缀匹配。 location /             通用匹配,任何未匹配到其他location的请求都会匹配到。 注意:正则匹配会根据匹配顺序,找到第一个匹配的正则表达式后将停止搜索。普通字符串匹配则无视顺序,只会选择最精确的匹配。

也未找到答案,有可能是 / 不能用精确匹配吧

最新文章

  1. Tips标签显示
  2. 剑指Offer面试题:3.替换空格
  3. ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)
  4. js模块开发(一)
  5. JAVA GUI
  6. 如何在yii的controller中调用外部action
  7. solr的建议搭建
  8. hdu 3714 Error Curves(三分)
  9. Word 2016 test
  10. Spring配置文件中如何使用外部配置文件配置数据库连接
  11. 移动端和PC端弹出遮罩层后,页面禁止滚动的解决方法及探究
  12. 出现Failed to get convolution algorithm的解决方法
  13. mysql之用户管理
  14. DedeCMS织梦文章页图片地址为绝对路径实现方法
  15. 在写makefile过程中遇到的问题
  16. myeclipse 遇到的一些问题及解决方案
  17. Building Boost for Android with error “cannot find -lrt”
  18. Linux 如何将一个文件夹的所有内容授权给某一个用户
  19. java中进行四舍五入
  20. day24,python习题

热门文章

  1. C#判断数组或集合中是否含有属性值为value的对象
  2. Linux安装Anaconda3完整教程
  3. 又拍云 Redis 的改进之路
  4. Pytorch Dataloader加速
  5. 强化学习-学习笔记8 | Q-learning
  6. centos更改mac
  7. SpringBoot接口 - 如何生成接口文档之非侵入方式(通过注释生成)Smart-Doc?
  8. atcoder ABC 232 B~E题解
  9. 5-3 Dubbo | 负载均衡
  10. DDS信号发生器加强版(双通道,发送波形的频率可控,相位可控,种类可控)