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

前几天,一朋友出程序出问题却怎么查都没看出问题,于是让我帮它看看。其实它是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
, 定义404页面
返回404状态码
nginx 返回404状态、nginx 返回404、nginx 自定义404页面、nginx 指定url返回404、nginx 直接返回404,以便于您获取更多的相关知识。

时间: 2024-11-01 12:33:10

Nginx中定义404页面并且返回404状态码的正确方法_nginx的相关文章

Nginx定义404页面并返回404状态码

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(

ASP.NET设置404页面返回302HTTP状态码的解决方法_实用技巧

在配置文件中配置404页面如下: 复制代码 代码如下: <customErrors mode="On" defaultRedirect="404.aspx"> <error statusCode="403" redirect="404.aspx" /> <error statusCode="404" redirect="404.aspx" /> <

未建好页面应返回503状态码 防止被删除

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 近期,百度站长平台发现有一些网站把未建好的页面放到线上,并且这些页面在被百度抓取的时候返回码是404,于是页面被百度抓取后,会被当成死链直接删除.但是这个页面在第二天或者过几天就会建好,并上线到网站内展现出来,但是由于之前已经被百度当做死链删除,所以要再次等这些链接被发现,然后抓取,才能展现,这样的操作最终会导致一些页面在一段时间内不会在百度

IIS下自定义404页面返回200状态码的严重性及解决方法_win服务器

在了解404页面前,先给大家了解一下几个常见的HTTP状态码.* 404 : 请求的网页不存在(不排除日后该链接有效的可能性):* 410 : 请求的网页不存在(永久):* 200 : 服务器成功返回网页* 302 : 网址临时重定向(跳转)* 301 : 网址永久重定向* 403 : 拒绝访问* 500 : 内部错误 当访问一个不存在的页面时会返回404状态码,告诉搜索引擎这个页面不存在或者已经删除.默认情况下没做自定义404页面时,访问一个不存在的页面会如下图所示 出现这样的页面无论是对用户

ajax获取php页面的返回参数,控件赋值的方法_AJAX相关

js页面 $.ajax({ type : "get", url : "", //跳转页面 data :"m=content&c=favorite&a=del_favorite&shoucangId="+_id,//传递的参数 datatype : "html", async:'false', success : function(data) //返回值 { if(data !=null) { var s

ajax获取php页面的返回参数,控件赋值的方法

js页面 $.ajax({ type : "get", url : "", //跳转页面 data :"m=content&c=favorite&a=del_favorite&shoucangId="+_id,//传递的参数 datatype : "html", async:'false', success : function(data) //返回值 { if(data !=null) { var s

分析网站日志中百度蜘蛛返回304状态码的情况

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 最近遇到一个网站被百度蜘蛛抓取首页后大量返回304状态码的问题,以前遇到过301和302,就是没了解过304,刚好可以对这个情况进行一下分析和观察,以便比较深入的了解该问题的出现以及应对之策. 百度百科对304状态码是这么解释的:如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有

模拟登录正方教务系统重定向页面拿到的状态码为什么 总是200不是302

问题描述 模拟登录正方教务系统重定向页面拿到的状态码为什么 总是200不是302 请求代码 List pairs = new ArrayList(); pairs.add(new BasicNameValuePair("__VIEWSTATE", "dDwyODE2NTM0OTg7Oz5hS%2FqlazCCYK7Agp6rx5GFtdHxlg%3D%3D")); pairs.add(new BasicNameValuePair("txtUserName&

c语言-为什么filezilla等软件在退出的时候不返回221状态码?

问题描述 为什么filezilla等软件在退出的时候不返回221状态码? 使用c语言读取数据包的时候,发现ftp软件退出的时候不返回221:抓包测试,不返回221的有:大众ftp.u8ftp 返回221的有:flashftp请问这是软件没有设置好?还是其他的什么问题? 如果确实ftp软件不返回221状态码,只有tcp握手释放,该如何判断ftp链接断开了? 解决方案 软件可能没有遵守,实现不规范等.