nginx自定义错误页教程
文章目录
自定义错误页- 在网站访问过程中,经常会遇见各种各样的错误,如找不到访问的页面则会提示 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