admin 发表于 2021-4-16 17:40:51

Nginx Location指令使用

#Location语法结构:
location   [ = | ~ | ~* | ^~ ]   /uri/{ configuration }

#Location本身:
192.168.2.1/home/index.php?id=10

#Location运算符:
location   =    /         精确前缀匹配。
192.168.2.1
192.168.2.1/

location   ^~   /home         普通字符串匹配。
192.168.2.1/home
192.168.2.1/home/
192.168.2.1/home?id=10
192.168.2.1/home/index.php

location   ~    /home             区分大小写的正则匹配。
192.168.2.1/home
192.168.2.1/home/
192.168.2.1/home?id=10
192.168.2.1/home/index.php

location   ~*   /home         忽略大小写的正则匹配。
192.168.2.1/HOME
192.168.2.1/home
192.168.2.1/home/
192.168.2.1/home?id=10
192.168.2.1/home/index.php
192.168.2.1/Home/index.php

location   /home            不带任何修饰符,表示前缀匹配。
192.168.2.1/home
192.168.2.1/home/
192.168.2.1/home?id=10
192.168.2.1/home/index.php

location   /                  通用匹配,任何未匹配到其他location的请求都会匹配到。
192.168.2.1
192.168.2.1/

#Location匹配模式:
1.普通字符串:=、^~、/uri、/
2.正则表达式:~、~*

#Location匹配优选级:
=
^~
~、~*
/、/uri

#Location实例:
location = / {
  # 只匹配 / 的查询.
  [ configuration A ]
}

location ^~ /images/ {
  # 匹配任何以 /images/ 开始的查询并且停止搜索,不检查正则表达式。
  [ configuration B ]
}

location ~* \.(gif|jpg|jpeg)$ {
  # 匹配任何以gif, jpg, or jpeg结尾的文件,但是所有 /images/ 目录的请求将在Configuration C中处理。
  [ configuration C ]
}

location / {
  # 匹配任何以 / 开始的查询,但是正则表达式与一些较长的字符串将被首先匹配。
  [ configuration D ]
}

A->B->C->D

页: [1]
查看完整版本: Nginx Location指令使用