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错误

原文地址:https://www.cnblogs.com/mikeluwen/p/8862070.html

时间: 2024-07-31 08:25:56

nginx 404重定向到自定义页面的相关文章

nginx 设置错误的自定义404页面跳转到500

5年前写的站, 当时是在apache下写的error page, 换了nginx后, 404页面直接跳到了500 服务器内部错误. 只需要在配置 try_files 的时候指定一下就可以了 我的是debian, 在/etc/nginx/site-available/default 里面location / server{ </pre><pre name="code" class="plain"> location / { <span s

Nginx学习笔记05错误页面重定向

Nginx至少存在两种不同的配置来指定错误页面: 使用try_files配置项. 使用error_page配置项. 先介绍使用try_files配置项的情况. Nginx提供的try_files配置允许在一个location中指定多个潜在的可能的响应页面,Nginx将按照定义的次序依次尝试访问这些响应页面,直到成功访问该页面.根据这个机制,可以在try_files配置的页面列表的最后面加上一个页面作为默认的错误页面. 配置内容: location /abc { root  html; try_f

ASP.NET自定义404和500错误页面

在ASP.NET网站项目实际上线运行的过程中,有时候在运行环境下会出现400错误或者500错误,这些错误默认的页面都不友好,比较简单单调,其实我们可以自行设置这些错误所对应的页面,让这些错误跳转到我们指定的路径.此文将介绍如何在ASP.NET项目中设置404错误和500错误为例. 首先我们可以到网上下载到一些优美的404错误页面或者500错误页面的HTML模板,或者你也可以自行制作个HTML模板.然后将该页面放入到你的网站项目中,如果你的项目为WebForm项目,则你将需要新建一个Error.A

Nginx 301重定向域名

为何要使用301重定向 在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名.网页的扩展名改变.网站域名改变等.如果不做重定向,用户的收藏和搜索引擎数据库中的旧地址只能让访客得到一个404错误信息页面,访问流量白白丧失.不仅如此,之前该页面的一切积累(比如PR值)就都白费了. 301重定向不仅能使页面实现自动跳转,对于搜索引擎来说,也可能可以传递PR值. nginx重定向规则详细介绍 http://www.jefflei.com/post/1015.html rewrite命令n

ngnix+fastcgi+thinkphp3.2 404重定向的问题

昨天一网友说自己用thinkphp做的程序无法做404重定向. 当时我就挺纳闷的thinkphp做404也是挺简单的,只要在配置文件里面加上一条'ERROR_PAGE' =>'/404.html'就好了,怎么会无法重定向呢? firebug打开对方的网站随便输入一个错误的地址发现给出了404代码,并且执行了跳转locaction:/404.html,但是页面完全空白,并没有显示404页面的设定内容. 当时就明白啥情况了,老汉当年也遇到这样的问题,google转了n圈才解决.只要在nginx.co

SpringBoot系列教程web篇之404、500异常页面配置

接着前面几篇web处理请求的博文,本文将说明,当出现异常的场景下,如404请求url不存在,,403无权,500服务器异常时,我们可以如何处理 原文友链: SpringBoot系列教程web篇之404.500异常页面配置 I. 环境搭建 首先得搭建一个web应用才有可能继续后续的测试,借助SpringBoot搭建一个web应用属于比较简单的活; 创建一个maven项目,pom文件如下 <parent> <groupId>org.springframework.boot</gr

nginx反向代理proxy_set_header自定义header头无效的问题

###案例1环境nginx,linux,tomcat域名访问是走nginx给后端服务器处理的,问题是域名经过nginx访问直接不能获取到headers,直接tomcat访问可以那么问题肯定在nginx上无法处理headers的问题了, 经过查询上面资料得到是nginx的锅,hearders有下划线的锅,nginx设置underscores_in_headers on,参照上面配置说.就可以处理,测试:http://apistore.baidu.com/astore/toolshttpproxyA

WordPress用户登录后重定向到指定页面

这篇文章将向您展示WordPress用户登录后如何重定向到指定页面或者文章的技巧. 一.重定向到网站管理面板. 将以下代码添加到您的当前主题的 functions.php 文件中: function soi_login_redirect($redirect_to, $request, $user) { return (is_array($user->roles) && in_array('administrator', $user->roles)) ? admin_url() 

LNMP(2)Nginx默认虚拟主机、Nginx用户认证、Nginx域名重定向、Nginx访问日志、

Nginx默认虚拟主机 Nginx和httpd都有虚拟主机,在httpd中第一个被加载的就是默认虚拟主机:但是在Nginx中它有一个配置用来标记默认虚拟主机(default_server),如果不做标记,那么第一个也是默认为虚拟主机. 默认虚拟主机设置: 1.需改配置文件/usr/local/nginx/conf/nginx.conf cd /usr/local/nginx/conf/ vim nginx.conf 删除内容后,加上一行(在httpd{}里加)include vhost/*.co