您的位置:首页 > 健康 > 美食 > 建站abc要钱吗_红河网站建设设计_新软件推广_大型seo公司

建站abc要钱吗_红河网站建设设计_新软件推广_大型seo公司

2024/10/11 19:50:53 来源:https://blog.csdn.net/m0_45284589/article/details/142853633  浏览:    关键词:建站abc要钱吗_红河网站建设设计_新软件推广_大型seo公司
建站abc要钱吗_红河网站建设设计_新软件推广_大型seo公司

Nginx 中的 location 匹配规则是用于定义 Nginx 如何处理不同的 URL 请求。当 Nginx 接收到一个请求时,它会按照以下顺序进行匹配:

  1. 精确匹配(=)
  • 当请求的 URI 与 location 后面的字符串完全相同时,Nginx 会选择这个 location 块进行处理。
  • 优先级最高
location = /login {echo '规则A: 精确匹配/login';
}# 访问 http://localhost/login 将匹配规则 A。
  1. 最长前缀匹配(^~)
  • 如果请求的 URL 以某个 location 后面的字符串开头,并且这个字符串是最长的,Nginx 会选择这个 location 块进行处理。
  • ^~ 修饰符会停止后续的正则匹配搜索。
location ^~/static/ {echo '规则B:最长前缀匹配/static/';
}location ^~/static/xlsx/ {echo '规则X:最长前缀匹配/static/xlsx,优先级高于规则C但仅当URI完全匹配时生效';
}# 访问 http://location/static/test.txt 将匹配规则 B。# 访问 http://location/static/xlsx/test.xlsx 将匹配规则 X。虽然规则 B 也能匹配到,但因为最大匹配原则(且规则 X 是完全匹配),最终选中了规则 X。如果去掉规则 X,则当前 URL 会匹配上规则 B。
  1. 正则表达式匹配(~ 或 ~*)
  • 使用 ~ 开头表示区分大小写的正则匹配。
  • 使用 ~* 开头表示不区分大小写的正则匹配。
  • Nginx 会按照配置文件中的顺序逐个检查正则表达式 location 块,直到找到第一个匹配的块。因此,正则表达式的顺序很重要。
location ~ \.(gif|jpg|png|js|css)$ {  			# \在这里是转义字符echo "规则C:区分大小写的正则匹配图片或静态文件";  
}  location ~* \.png$ {  echo "规则D:不区分大小写的正则匹配.png文件";  
}  # 访问 http://localhost/test.png 将匹配规则 C。# 访问 http://localhost/test.PNG 将匹配规则 D。
  1. 普通前缀匹配
  • 不使用任何修饰符的 location 指令表示普通前缀匹配。
  • Nginx 会按照配置文件中出现的先后顺序进行匹配,先出现的 location 指令优先匹配。
location /img {echo "规则Y:普通匹配 /img";
}# 访问 http://localhost/img/test.jepg 将匹配规则 Y。# 访问 http://localhost/img/test.jpg 将匹配规则 C。虽然规则 Y 也可以匹配上,但是因为正则匹配优先,而忽略了规则 Y。
  1. 默认匹配(/)
  • 如果请求的 URI 与任何特定的 location 块都不匹配,Nginx 将使用默认的 location 块(如果有的话)。
location / {echo "规则E:默认匹配所有其他请求";
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com