zoukankan      html  css  js  c++  java
  • NGINX 配置404错误页面转向

    什么是404页面

    如果碰巧网站出了问题,或者用户试图访问一个并不存在的页面时,此时服务器会返回代码为404的错误信息,此时对应页面就是404页面。404页面的默认内容和具体的服务器有关。如果后台用的是NGINX服务器,那么404页面的内容则为:404 Not Found

    为什么要自定义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://www.xxx.com/404.html

    4.更改后重启nginx,,测试nginx.conf正确性: /opt/nginx/sbin/nginx –t

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

    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错误页面是提高用户体验的一个细节,如果是正规站,我们就必须做好它。你可以对每个网站的错误页面分别设置,也可以设置一个全局的404页面。

    为指定位置设定一个404页面

    1. location /my_blog {
    2. error_page 404 = /article_not_found.html;
    3. }

    整个网站的404页面

    1. server {
    2. listen 80;
    3. error_page 404 /page_not_found.html;
    4. ...

    你可以用单个错误页面一起来处理多个错误代码

    1. location /my_blog {
    2. error_page 500 502 503 504 = /server_error.html
    3. }

    重定向到一个完全不同的服务器,假设你在http区域定义有一个上游服务器server2:

    1. upstream server2 {
    2. server 10.0.0.1:80;
    3. }
    4. server {
    5. location /my_blog {
    6. error_page 404 = @try_server2;
    7. }
    8. location @try_server2 {
    9. proxy_pass http://server2;
    10. }

    这个功能可以用在Nginx前端+Apache后端的服务器架构中。

  • 相关阅读:
    POJ 1873 The Fortified Forest
    C语言中time函数获取系统时间
    回车符号与换行符号
    [转]NYOJ-511-移动小球
    C语言的inline
    C语言编译全过程
    linux下面安装配置mongoDB
    linux下面安装配置LAMP环境
    linux下面的解压缩文件的命令
    day23 正则,re模块
  • 原文地址:https://www.cnblogs.com/lben/p/2872062.html
Copyright © 2011-2022 走看看