有一次无意输入了错误的链接,发现默认的404界面实在太难看简陋了,就想自己换一个,但我查阅了大量的资料,并且和chatGPT进行了大量的对话,所有查阅到关于nginx跳转404界面的配置资料基本都是和我写的一样,并且保证了nginx的权限和文件权限都是给到位了,但无论我怎么改都无法让系统读取到我配置的404页面,经过摸索排查,最后解决了,鉴于谷歌百度bing等主流搜索引擎都没有写出此类问题的解决方式,我提一个放出来以便后人用之。按着配置说明,我在nginx.conf下输入了以下参数:
跳转404的nginx配置:
error_page 404 /404.html;
location = /404.html
{
root html;
internal;
}
意思就是若触发404错误界面就跳转到网页根目录下的404.html,并且外部不能直接访问404界面
这应该是比较准确,逻辑和指令都没问题的参数,但是很奇怪的是为什么设定了个性化的404页面却依然跳转到默认的界面? 最后还是我一点一点去改动配置文件,找出可能导致如此的奇异参数,最后当我删去网页重定向,也就是http的地址定向到https的网页设置参数:
http转https网页重定向,如:
server
{
listen 80;
server_name www.zsanjin.de;
rewrite ^(.*) https://$server_name$1 permanent;
}
http的server块中删除了这个,结果就发现就能自动跳转跳转到个性化的404页面了,本以为设置了网页重定向,就只要在http的块里面添加跳转404页面参数就行,但是还得在https的块中添加跳转404页面参数,就很奇怪,原因不明
https块中增加跳转参数,如:
server
{
listen 443 ssl;
server_name www.zsanjin.de;
error_page 404 /404.html;
location = /404.html {
root html;
internal;}
}
Comments NOTHING