关于if指令的疑惑
来源:5-10 rewrite模块中if指令
乃好
2020-10-15
老师您好
当我使用if指令时
location / {
if ( $uri = "/images/" ){
rewrite (.*) /pics/ break;
}
}访问是正常的:

当我去掉if指令,会报错500
location / {
rewrite (.*) /pics/ break;
}
error.log日志
2020/10/12 12:37:35 [error] 32389#0: *66 rewrite or internal redirection cycle while internally redirecting to "/pics/index.html", client: 192.168.1.219, server: localhost, request: "GET /images/ HTTP/1.1", host: "192.168.1.105:8080"
这我就想不通了,两次发送请求的url一模一样,就只是去掉了if判断,相当于不用判断也执行代码,怎么就会报错呢?
写回答
1回答
-
酷田
2020-11-13
这个问题的原因在于你访问的url结尾是带/,/images/,结尾有无斜线是有区别的,可以参考这个文档:https://blog.csdn.net/u010509052/article/details/105455813
如有疑问再继续提出哈
NGINX这些细节不容易理解
00
相似问题