Nginx中定义404页面并且返回404状态码的正确方法

 更新时间:2014年08月22日 11:17:29   投稿:junjie  
这篇文章主要介绍了Nginx中定义404页面并且返回404状态码的正确方法,本文在一次AJAX调用时发现了这个问题,服务器返回了一个404页页但没有返回404状态码,需要的朋友可以参考下

前几天,一朋友出程序出问题却怎么查都没看出问题,于是让我帮它看看。其实它是ajax请求了很多个模板,然后把模板写到页面中。关键是所有请求的页面都是200正常状态码返回,表面上看没什么问题,实际上有些请求虽然返回200状态码,但给回的状态码是200。WebServer是nginx,直接告诉我应该他们配置了nginx的404错误页面,虽然请求不存在的资源可以成功返回404页面,但返回状态码确是200。

404.html

复制代码 代码如下:

This is 404 page.

请求一个不存在的页面:

ajax Code:

$.ajax({
    url: "does_not_exist.html",
    success : function(Response, textStatus){
        console.log(textStatus+":"+Response);
    },
    error : function(XMLHttpRequest, textStatus, errorThrown){
        console.log([XMLHttpRequest, textStatus, errorThrown].join(","));
    }
});

执行结果:

进入Object看看详细:

找不到请求的页面并返回404页面信息,但状态码依然是200,所以jQuery没有走error函数回调而是直接走success回调了。

应该是配置写的有问题,于是打开nginx.conf,发现他们配置这么写:

复制代码 代码如下:

error_page  404  =  /404.html;

于是我查阅官网文档,把上面的表达式改写为:

复制代码 代码如下:

error_page  404     /404.html;

然后重启

复制代码 代码如下:

D:\nginx-1.5.11>nginx.exe -s reload

再来试试:

再来看看ajax请求的:

明显看到相比前面那条返回标红404状态码,下面console.log出来的是

复制代码 代码如下:

[object Object],error,Not Found

然后点击进入Object看看:

status值是404。既实现返回404页面,又能返回404状态码让ajax请求能够根据状态码判断页面请求状况进行错误处理。

(本文完)

相关文章

  • Nginx Rewrite模块应用的几种场景

    Nginx Rewrite模块应用的几种场景

    这篇文章主要介绍了Nginx Rewrite模块应用的几种场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 苹果M1芯片安装nginx 并且部署vue项目步骤详解

    苹果M1芯片安装nginx 并且部署vue项目步骤详解

    在本篇文章里小编给大家整理了一篇关于苹果M1芯片安装nginx 并且部署vue项目步骤详解内容,有需要的朋友们可以跟着学习参考下。
    2021-11-11
  • Nginx0.5.33+PHP5.2.5(FastCGI)搭建胜过Apache10倍的Web服务器

    Nginx0.5.33+PHP5.2.5(FastCGI)搭建胜过Apache10倍的Web服务器

    Nginx 0.5.31 + PHP 5.2.4(FastCGI)搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器的第2版,经过了多台服务器的测试。
    2009-10-10
  • 详解nginx进程锁的实现

    详解nginx进程锁的实现

    nginx是多进程并发模型的应用,但为了网络请求的安全性,必须要使用到锁,那么这个进程锁如何实现呢
    2021-06-06
  • Nginx反斜杠自动解码问题解决方法

    Nginx反斜杠自动解码问题解决方法

    这篇文章主要介绍了Nginx反斜杠自动解码问题解决方法,有些时候是不需要解码的,可nginx缺会自动解码,本文讲解的就是如何解决这个问题,需要的朋友可以参考下
    2015-02-02
  • 一文了解nginx HTTP安全响应问题

    一文了解nginx HTTP安全响应问题

    一些网站系统会经常遭到各类XSS攻击、点劫持等,从而造成重要信息的泄露以及服务器安全问题,本文就来介绍一下,感兴趣的可以了解一下
    2023-11-11
  • 使用Nginx反向代理到go-fastdfs的方法示例

    使用Nginx反向代理到go-fastdfs的方法示例

    这篇文章主要介绍了使用Nginx反向代理到go-fastdfs的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Linux\Nginx 环境下虚拟域名配置及测试验证

    Linux\Nginx 环境下虚拟域名配置及测试验证

    这篇文章主要介绍了Linux\Nginx 虚拟域名配置及测试验证的步骤详解,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • nginx host绕过的三种方式

    nginx host绕过的三种方式

    本文主要介绍了nginx host绕过的三种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • nginx日志配置指令详解

    nginx日志配置指令详解

    这篇文章主要介绍了nginx日志配置指令详解,nginx有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志,需要的朋友可以参考下
    2014-07-07

最新评论