nginx配置文件中的这条location规则为什么无效?

nginx配置文件中的location规则如下:

location = / {
    return 601;  #规则A
}  
location = /login {  
    return 602;  #规则B
}  
location ^~ /static/ {  
    return 603;  #规则C
}  
location ~ \.(gif|jpg|png|js|css)$ {  
    return 604;  #规则D
}  
location ~* \.png$ {  
    return 605;  #规则E
}  
location / {  
    return 608;  #规则H
}

当访问https://www.mydomain.com/abc.gifhttps://www.mydomain.com/abc.png时,服务器返回404,而不是返回预期的604,也不是返回605、608(其他规则正常,比如访问https://www.mydomain.com/abc.PNG返回605,访问https://www.mydomain.com返回601等)。

也就是说,规则D无效,请问是哪里的问题?

谢谢!

阅读 5.9k
1 个回答

在我的机器上用你的配置访问 localhost:8888/abc.png 时返回的是604, 见截图
我想你 nginx 配置不只上面这些, 估计是其他部分起了作用, 建议你把其他部分注掉试试, 把贴上来看看

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题