Nginx使用try_files返回500错误的解决方案
记录(shui)一下自己在建站过程中踩的一个坑,也给大家一个参考:
有一天在自己的博客随便乱点的时候,突然冒出来一个500 Internal Server Error
.
我寻思这可是静态博客,怎么可能出现500错误呢?
想起前几天改过Nginx的配置,于是赶紧去查对应的文件.
将网站的配置回滚之后,再次访问网址出现404错误:
所以去翻了一下web目录,发现由于刚建站没多久,对应的文件确实没来得及写(lll¬ω¬)
此时问题就变成了哪个修改导致404错误变成了500错误?
继续排查上次对配置文件的修改,注意到了这个更改:当时为了把博客文章的.html
后缀省略(强迫症看着实在难受>﹏<),使用了Nginx的try_files
命令:
location / {
try_files $uri $uri.html $uri/index.html;
}
谷歌搜索后发现try_files
在找不到对应文件时会返回500错误;
所以一般要在最后面加上=404
,强制把返回的错误码改为404:
...
try_files xxx xxx =404;
...
一些小提示
Nginx隐藏.html
和.php
后缀的配置:
try_files $uri $url.php $uri/index.php $uri/index.html $uri.html $uri.htm =404;
最后,欢迎小伙伴们来我の博客玩!