Location 字符匹配详解

1.Location后什么都不带直接指定目录

root@Nginx conf.d# vim vhosts.conf

server {

listen 80;

server_name lee.timinglee.org;

location /null {

return 200 "/null-1";

}

}

root@Nginx conf.d# curl lee.timinglee.org/null/

/null-1

root@Nginx conf.d# curl lee.timinglee.org/NULL/

<html>

<head><title>404 Not Found</title></head>

<body>

<center><h1>404 Not Found</h1></center>

<hr><center>nginx/1.28.1</center>

</body>

</html>

2.location 后用 =

root@Nginx conf.d# vim vhosts.conf

server {

listen 80;

server_name lee.timinglee.org;

location /null {

return 200 "null-1";

}

location = /null { #精确匹配到此结束

return 200 "null-2";

}

location ~ /null {

return 200 "null-3";

}

}

root@Nginx conf.d# nginx -s reload

root@Nginx conf.d# curl lee.timinglee.org/null

null-2

3.location 后用"^~"

root@Nginx conf.d# vim vhosts.conf

server {

listen 80;

server_name lee.timinglee.org;

location /null {

return 200 "null-1";

}

location = /null {

return 200 "null-2";

}

location ~ /null {

return 200 "null-3";

}

location ^~ /lee {

return 200 "lee";

}

}

root@Nginx conf.d# nginx -s reload

lee

root@Nginx conf.d# curl lee.timinglee.org/lee

lee

root@Nginx conf.d# curl lee.timinglee.org/test/lee

<html>

<head><title>404 Not Found</title></head>

<body>

<center><h1>404 Not Found</h1></center>

<hr><center>nginx/1.28.1</center>

</body>

</html>

root@Nginx conf.d# curl lee.timinglee.org/leeab/test

lee

4.location 后用"~"

root@Nginx conf.d# vim vhosts.conf

server {

listen 80;

server_name lee.timinglee.org;

location /null {

return 200 "null-1";

}

location = /null {

return 200 "null-2";

}

location ~ /null {

return 200 "null-3";

}

location ^~ /lee {

return 200 "lee";

}

location ~ /timing/ {

return 200 "timing";

}

}

root@Nginx conf.d# nginx -s reload

root@Nginx conf.d# curl lee.timinglee.org/timinga/

timing

root@Nginx conf.d# curl lee.timinglee.org/timing/

timing

root@Nginx conf.d# curl lee.timinglee.org/a/timing/

timing

root@Nginx conf.d# curl lee.timinglee.org/a/timinga/

timing

root@Nginx conf.d# curl lee.timinglee.org/a/atiming/

<html>

<head><title>404 Not Found</title></head>

<body>

<center><h1>404 Not Found</h1></center>

<hr><center>nginx/1.28.1</center>

</body>

</html>

5.location 后用"~*"

root@Nginx conf.d# vim vhosts.conf

server {

listen 80;

server_name lee.timinglee.org;

location /null {

return 200 "null-1";

}

location = /null {

return 200 "null-2";

}

location ~ /null {

return 200 "null-3";

}

location ^~ /lee {

return 200 "lee";

}

location ~ /timing/ {

return 200 "timing";

}

location ~* /timinglee {

return 200 "timinglee";

}

}

root@Nginx conf.d# nginx -s reload

root@Nginx conf.d# curl lee.timinglee.org/Timinglee/

timinglee

root@Nginx conf.d# curl lee.timinglee.org/timinglee/

timinglee

root@Nginx conf.d# curl lee.timinglee.org/timinglee/a

timinglee

root@Nginx conf.d# curl lee.timinglee.org/a/timinglee/a

timinglee

root@Nginx conf.d# curl lee.timinglee.org/a/atiminglee/a

<html>

<head><title>404 Not Found</title></head>

<body>

<center><h1>404 Not Found</h1></center>

<hr><center>nginx/1.28.1</center>

</body>

</html>

root@Nginx conf.d# curl lee.timinglee.org/a/timingleea/a

timinglee

root@Nginx conf.d# curl lee.timinglee.org/a/Timinglee/a

timinglee

6.location 后用"\"

root@Nginx conf.d# vim vhosts.conf

server {

listen 80;

server_name lee.timinglee.org;

location /null {

return 200 "null-1";

}

location = /null {

return 200 "null-2";

}

location ~ /null {

return 200 "null-3";

}

location ^~ /lee {

return 200 "lee";

}

location ~ /timing/ {

return 200 "timing";

}

location ~* /timinglee {

return 200 "timinglee";

}

location ~* \.(img|php|jsp)$ {

return 200 "app";

}

}

root@Nginx conf.d# nginx -s reload

root@Nginx conf.d# curl lee.timinglee.org/test.php

app

root@Nginx conf.d# curl lee.timinglee.org/test.jsp

app

相关推荐
jktantan7 小时前
Vue keep-alive 切标签后滚动位置回顶?因为 onDeactivated 里读到的 scrollTop 是 0
前端·javascript·vue.js
无足鸟ICT7 小时前
【RHCA+】vmstat命令(监控系统资源)
linux·服务器
垆边人似月.7 小时前
RDMA 文件传输踩坑(五):READY 发送成功后,为什么出现 Work Request Flushed Error?
服务器·网络·tcp/ip
闪亮的路灯7 小时前
Linux 安装mqtt服务mosquitto
linux·运维·服务器
HideF7 小时前
nmcli
linux·服务器·网络
2601_962885728 小时前
quotes 字段全解:涨跌幅、振幅、换手率的口径与单位
java·前端·spring
excel8 小时前
encodeURI 和 encodeURIComponent 有什么区别?
前端
前端精髓8 小时前
调用openrouter的免费API模型
java·前端·javascript
qetfw8 小时前
UOS DHCP Relay:跨网段分配与 IP、DNS、网关验证
linux·服务器·网络·tcp/ip·uos
赛博守夜人8 小时前
AI安全攻防与治理之十四:AI 安全测试不能脱离传统安全,Web、API、移动端与模型攻击面的组合拳
前端·人工智能·安全