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(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: ginx-1.5.11>nginx.exe -s reload
再来试试:

再来看看ajax请求的:

明显看到相比前面那条返回标红404状态码,下面console.log出来的是
[object Object],error,Not Found
然后点击进入Object看看:

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

 

时间: 2024-10-02 14:08:20

Nginx定义404页面并返回404状态码的相关文章

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

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

未建好页面应返回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页面时,访问一个不存在的页面会如下图所示 出现这样的页面无论是对用户

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

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

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

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

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

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

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

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

404错误页面返回的状态码是200之严重性

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 最近在做网站的改版时发现站点的404错误页面是IIS的默认页面,内容很单调.为了提高网站的友好性,我便重新设计了一个404错误页面:接着,我便登录至A服务器 提供商的后台开始操作,准备更新该404错误页面. 在后台的整个操作还是很便捷的,A服务器提供商这块的用户体验确实做的不错!很快,我按照提示就完成了404错误页面的更新了.打开我网站的某一个页面,随便的在该域名后

ASP.NET中设置404页面并输出404状态代码

1.配置web.config  代码如下 复制代码 <customErrors redirectMode="ResponseRewrite" defaultRedirect="/404.aspx">     <error statusCode="404" redirect="/404.aspx"/> </customErrors> 2.设置404.aspx 在之前我们已经创建了404页面40