Http 如何阻止nginx认为图像URL是实际文件?
为这个糟糕的标题感到抱歉;这很难解释 我的网站内置了一个搜索功能,如下所示:Http 如何阻止nginx认为图像URL是实际文件?,http,url,nginx,Http,Url,Nginx,为这个糟糕的标题感到抱歉;这很难解释 我的网站内置了一个搜索功能,如下所示: http://www.example.com/search/queryhere 问题是,当我尝试搜索文件名时,例如: http://www.example.com/search/hello.jpg 我得到了一个nginx404页面,大概是因为search/hello.jpg正在试图打开。一个解决方法是在请求路径中添加一个正斜杠,但我想要一个更持久的解决方案。我该如何解决这个问题 location ~* \.
http://www.example.com/search/queryhere
问题是,当我尝试搜索文件名时,例如:
http://www.example.com/search/hello.jpg
我得到了一个nginx404页面,大概是因为search/hello.jpg
正在试图打开。一个解决方法是在请求路径中添加一个正斜杠,但我想要一个更持久的解决方案。我该如何解决这个问题
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,您应该看看try_files
,它让您的生活更加轻松
显示您的nginx配置please@Alp在问题中增加了相关部分