location和rewrite规则的使用
1.location规则
- 概念:我们可以通过配置location指令块来决定哪个客户端发过来的请求URL如何处理
- 语法:
Syntax: location [ = | ~ | ~* | ^~ ] uri { … }
location @name { … }
Default: —
Context: server, location
location配置可以在server和location指令块中配置。
=:精确匹配(必须全部相等)
~:大小写敏感(正则表达式)
~* :忽略大小写(正则表达式),这里要注意忽略大小写的意思是请求的字符大小写都可以,但是不会进行大小转换,请求的大小写对应的文件必须存在。
^~ :只需匹配uri部分
@ :内部服务跳转
- 配置实例
(1)在这里为了不每次更改index.html文件来测试试验效果,特此引用return来简化
[root@localhost ~]# curl 192.168.202.132/jf.jpg
this is /jf.jpg
因为此时只有一个匹配规则,所以输出此匹配规则的输出值
(2)增加匹配规则 “~”
[root@localhost ~]# curl 192.168.202.132/jf.jpg
this is ~ \.(jpg|png)
此时可以看到直接跳过第一个规则匹配到第二个规则
(3)继续添加规则 “~*”
[root@localhost ~]# curl 192.168.202.132/jf.jpg
this is ~ \.(jpg|png