nginx 404重定向到自定义页面

Posted 行知笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 404重定向到自定义页面相关的知识,希望对你有一定的参考价值。

在访问时遇到上面这样的404错误页面,我想99%(未经调查,估计数据)的用户会把页面关掉,用户就这样悄悄的流失了。如果此时能有一个漂亮的页面能够引导用户去他想去的地方必然可以留住用户。因此,每一个网站都应该自定义自己的404页面。

nginx下如何自定义404页面

IIS和APACHE下自定义404页面的经验介绍文章已经非常多了,NGINX的目前还比较少,为了解决自家的问题特地对此作了深入的研究。研究结果表明,NGINX下配置自定义的404页面是可行的,而且很简单,只需如下几步:

1.创建自己的404.html页面

2.更改nginx.conf在http定义区域加入:fastcgi_intercept_errors on;

3.更改nginx.conf(或单独网站配置文件,例如在nginx ->sites-enabled下的站点配置文件 )

中在server 区域加入:error_page   404    /404.html;
或者error_page 404   http://blog.luwen.cc;    【在nginx配置文件中,‘;’分号要带上,也就是直接把404页面重定向到自己的主页】

4.更改后重启nginx,,测试nginx.conf正确性: /usr/local/nginx/sbin/nginx -t  显示ok然后重启

/usr/local/nginx/sbin/nginx  -s  reload 即可 然后测试即可!我的网站404页面已经重定向到我的主页呢

#502、503、504 等错误可以用同样的方法来配置。

error_page   500 502 503 504     /50x.html;

注意事项:

1.必须要添加:fastcgi_intercept_errors on; 如果这个选项没有设置,即使创建了404.html和配置了error_page也没有效果。fastcgi_intercept_errors 语法: fastcgi_intercept_errors on|off 默认: fastcgi_intercept_errors off 添加位置: http, server, location 默认情况下,nginx不支持自定义404错误页面,只有这个指令被设置为on,nginx才支持将404错误重定向。这里需要注意的是,并不是说设置了fastcgi_intercept_errors on,nginx就会将404错误重定向。在nginx中404错误重定向生效的前提是设置了fastcgi_intercept_errors on,并且正确的设置了error_page这个选项(包括语法和对应的404页面)

2.不要出于省事或者提高首页权重的目的将首页指定为404错误页面,也不要用其它方法跳转到首页。

3.自定义的404页面必须大于512字节,否则可能会出现IE默认的404页面。例如,假设自定义了404.html,大小只有11个字节(内容为:404错误


以上是关于nginx 404重定向到自定义页面的主要内容,如果未能解决你的问题,请参考以下文章

apache_conf 404重定向到自定义页面

如何使用基于 404 错误的 mod_rewrite 重定向到自定义错误页面

如何使用 Codeigniter 在自定义 404 页面中重定向 404 错误?

Spring Security 未路由到自定义登录页面 404 错误

如果匿名用户无权访问 URL,如何将他们重定向到自定义页面而不是登录页面?

登录 NEXT-AUTH 后重定向到自定义 URL