抱歉可怕的头衔;很难解释
我的网站内置了一个搜索功能,使用如下:
http://www.example.com/search/queryhere
问题在于,当我尝试搜索文件名时,例如:
http://www.example.com/search/hello.jpg
我得到一个nginx 404页面,据说因为search/hello.jpg
正在尝试打开。解决方法是在请求路径中添加正斜杠,但我想要一个更永久的解决方案。我该如何解决这个问题?
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
access_log off;
}
答案 0 :(得分:1)
告诉nginx只对现有文件执行额外指令:
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
if (-f $request_filename) {
expires max;
log_not_found off;
access_log off;
}
}
也许有一种更好的方法,不需要if
......
使用
if
确保文件存在非常糟糕。这是意思。如果你有任何最新版本的Nginx,你应该看看try_files
这让生活变得更轻松。