nginx自定义错误页教程

2021-05-20 15:03:06

文章目录

自定义错误页- 在网站访问过程中,经常会遇见各种各样的错误,如找不到访问的页面则会提示 404 Not Found 错误,没有访问权限会提示 403 Forbidden 等,对于普通人而言,这样的提示界面 并不友好。在 Nginx 的主配置文件中,给出了以下的处理方式。

<pre class="brush:html;toolbar:false">error_page 500 502 503 504 /Sox.html;
  • 在上述配置中, error_page 指令用于自定义错误页面, 500 、 502 、 503 和 504 指的就是 HTTP 错误代码,/50x. html 用于表示当发生上述指定的任意一个错误时,都使用网站根目录下的 50x. html 文件处理。
  • 除此之外, error_page 指令还可以指定单个错误的处理页面、利用在线资源处理指定的错误,更改网站响应的状态码等多种设置,下面逐一演示自定义错误页面的几种常用使用 方式。

1.为每种类型的错误设置单独的处理方式

<pre class="brush:html;toolbar:false">#指定网站极目呆下的页面 40x.html,处琦 403 错误 
error_page 403    /40x .html; #指定网站根目录下的图片 404.jpg,处理 404 错误 
error_page 404    /404 .jpg;
  • 下面为了查看设置效果,将上述配置放到 server 块中,平滑重启 Nginx (nginx -s reload )使配置生效。 接着,在浏览器中进行访问测试,当网站目录下没有指定默认索引文件时访问会发生 403 错误,如图所示;
  • 当访问网站下不存在的目录 t 时,如图所示 。

2.利用在线资源进行处理错误

  • 处理错误的页面除了可以使用本站的资源外,还可以在发生指定错误时跳转到指定的 URL,利用在线资源进行处理。 配置示例如下。
<pre class="brush:html;toolbar:false">#处理单个指定错误 
error_page 403        http://example.com/forbidden.html; #处理一系列指定错误
error_page 500 502 503 504    http://example.com/notfound.html;
  • 按照上述设置修改配置文件后,发生 403 错误就跳转到
    http://example.com/forbidden.html 页面。
  • 还可以把错误的页面引向自己所需要页面,从而带来一些额外流量和权重。
  • nginx禁止ip访问, 只能通过域名访问:https://blog.csdn.net/qq\_41684621/article/details/103871194

3.更改晌应状态码

  • 在用户通过浏览器发送 HTTP 请求时,服务器处理完成后会返回响应信息响应信息中的状态码(Status)就是服务器在处理用户 HTTP 请求后的响应状态 。 例如,用户访问一 个不存在的页面,服务器返回的响应状态码就为 404。
  • 利用浏览器提供的 Fl2 开发者工具查看到当前请求页面的状态码,如图所示 。

  • 若要隐藏服务器返回的真实状态码信息,则可以利用进行自定义设置,具体配置如下。
<pre class="brush:html;toolbar:false">error_page 404 =200 /40x.html;
  • 按照上述设置修改配置文件,再次进行访问测试。在 发生 404 错误时,响应信息中的状态码是自定义的码值 200 ,成功隐藏了实际响应状态码。
  • 另外,更改响应状态码时还可以不指定确切的码值,而是由重定向后实际处理的真实结果来决定 。 例如,去掉上面配置的 200 后,配置如下
<pre class="brush:html;toolbar:false">error_page 404=/40x .html;
  • 按照上述设置修改配置文件,再次进行访问测试,如图所示 。从图中可以看出,当 前的状态码为 304 ,它表示自从上次请求后,请求的网页未修改过,若修改页面 40x. html 后,再次访问则会出现图所示的效果 。

4.设置错误页面案例

  • 如:www.xdr630.top ,在nginx.conf配置文件中设置
<pre class="brush:html;toolbar:false">error_page 404 /404.html;
  • 在网站根目录下添加一个 404.html 和 一张 404.png 图片

404.html代码如下:

<pre class="brush:html;toolbar:false"><html>
    <head>
        <meta charset="utf-8">
        <title>title>
    head>
    <body>
        <div align="center">
            <img src="404.png">
        div>
    body>html>

404.png

  • 当访问不存在的资源就会跳转到404页面,如:www.xdr630.top/e
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »