记录(shui)一下自己在建站过程中踩的一个坑,也给大家一个参考:

有一天在自己的博客随便乱点的时候,突然冒出来一个500 Internal Server Error.
HTTP-500错误
我寻思这可是静态博客,怎么可能出现 500 错误呢?
想起前几天改过 Nginx 的配置,于是赶紧去查对应的文件.

将网站的配置回滚之后,再次访问网址出现 404 错误:
网址返回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;