如何阻止nginx的思想形象url是实际的文件?

对于这个可怕的标题感到抱歉; 很难解释

我有一个searchfunction内置到我的网站,这是这样的使用:

http://www.example.com/search/queryhere 

问题是,当我尝试search一个文件名,例如:

 http://img.zgserver.com/http/hello.jpg 

我得到一个nginx的404页面,据说是因为search/hello.jpg试图打开。 解决方法是向请求path添加正斜杠,但我想要一个更持久的解决scheme。 我该如何解决?

  location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; access_log off; } 

告诉nginx只对现有文件做额外的指令:

 location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { if (-f $request_filename) { expires max; log_not_found off; access_log off; } } 

也许有更好的方法,不需要if

根据nginx陷阱 :

使用if来确保文件存在是可怕的。 这是平均的。 如果你有最近的Nginx版本,你应该看看try_files ,它使生活变得更容易。