我有一个网站,请求某个 JSON 文件时发现缺少该文件,会触发对后备 JSON 文件的请求。但是,我得到的不是第一个文件的 404,而是 的内容index.html
,这不是有效的 JSON,因此产生了错误。
我把问题追溯到这个指令:
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.html;
}
我怎样才能让它为 服务404
,mysite.com/some/nonexistent/file.json
但仍然index.html
获得mysite.com/
?
答案1
经过一番阅读,我改变了try_files
指令:
# Old way: fallback to index.html
try_files $uri $uri/ /index.html;
# New way: serve a 404 response
try_files $uri $uri/ =404;
另一个选择是:
# Fall back to this error page
try_files $uri $uri/ error_pages/404.html
我仍有这个指令来处理index.html
以下服务mysite.com/
:
server {
# ...
index index.html index.html;
#...
}