开发者社区> 问答> 正文

阿里云官方网站及论坛的404页面的http状态码也是200!!!

使用阿里云的服务器,win2008 r2 ,环境是阿里的一键安装包。现在问题是我通过谷歌网站管理员工具发现网站存在大量软404错误,也就是假404,请求不存在时,网站可以返回 404页面,但是当前页面的HTTP状态是200!!!!

问题出自
http://bbs.aliyun.com/read.php?tid=132668

我发现阿里云官方网站及论坛的404页面(www.aliyun.com/notfound/ )的http状态码也是200!!!

难道这是win2008r2上iis7.5的BUG吗?

展开
收起
alphafeed 2013-01-23 10:28:10 14843 0
7 条回答
写回答
取消 提交回答
  • Re阿里云官方网站及论坛的404页面的http状态码也是200!!!
    IIS 对于自定义 404 页面有三种选择:
    1. 将静态文件中的内容插入错误响应中
    2. 在此网站上执行 URL
    3. 以 302 重定向响应

    目测楼主选择的是第二个或是第三个。第二或第三个选项会在找不到页面时返回 302 Found 状态跳转到你的自定义错误页面,要返回什么状态码完全是你的自定义错误页面自己决定的(当然,如果你的自定义错误页面是个静态文件,比如 html,那就只能返回 200 了)。

    通常选择第二个或是第三个选项的时候,你的自定义 404 页面是一张动态网页,那么要返回什么状态码就可以由你控制了:
    <%
    Response.Status = "404 Not Found"
    %>

    甚至你可以唬唬人,返回个 403 Forbidden

    如果你的自定义 404 页面只是个静态网页,尽量选择第一个选项,即“将静态文件中的内容插入错误响应中”,这个选项与后两个选项的区别在于,IIS 会直接返回 404 Not Found 状态,并且输出你自定义网页中的内容(当然,这不适用于动态网页)。

    没有测试条件,仅凭搜索和YY,请自行测试。
    2013-02-01 16:02:58
    赞同 展开评论 打赏
  • Re阿里云官方网站及论坛的404页面的http状态码也是200!!!
    这种现象肯定是不正常的
    2013-01-28 19:34:36
    赞同 展开评论 打赏
  • Re阿里云官方网站及论坛的404页面的http状态码也是200!!!
    这个  什么情况?2008没有用过~~~~~~
    2013-01-24 12:33:55
    赞同 展开评论 打赏
  • 搞网站这么多年,还木有用过win2008
    2013-01-23 11:23:08
    赞同 展开评论 打赏
  • 回2楼ap2836i0b的帖子
    你说的这个设置不适合于自定义的404页面,如果按照MSDN博客上的设置方案等于没有设置,因为最终没有出现自定义的404页面

    -------------------------

    回4楼yamise的帖子
    windows 2012 server都出了很久了

    -------------------------

    回8楼ayun2010的帖子
    但是不知道怎样解决,我想阿里技术也遇到这个问题吧

    -------------------------

    回10楼lujjjh的帖子
    貌似说得有道理,待会去测试一下,回头不会再请教

    -------------------------

    Re阿里云官方网站及论坛的404页面的http状态码也是200!!!
    最终正确设置方法:


    我在设置IIS7的404错误页的时候,首先选择的是“在此网站上执行URL”,然后使用以下代码替换网站根目录中的web.config的404代码段
    <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" >
    <remove statusCode="404" />
    <error statusCode="404" path="404.htm" />
    </httpErrors>
    然后把上面代码的404.htm更改成404.php,检查不存在的页面时,能够出现自定义的404页面,并且页面状态码是404
    如楼上所讲,必须设置成动态页面(如php,ASP没有试用)才要以正确返回404状态码



    2013-01-23 11:00:08
    赞同 展开评论 打赏
  • 前几天有人问过同样的问题,我已经给出了答案,要设置一下IIS面板才行,把一个叫“功能委派”的属性设置为只读,具体怎么设置,你去百度搜索一下“功能委派 只读”即可知道
    2013-01-23 10:40:25
    赞同 展开评论 打赏
  • 不懂
    2013-01-23 10:35:11
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
阿里巴巴HTTP 2.0实践及无线通信协议的演进之路 立即下载
CDN助力企业网站进入HTTPS时代 立即下载
低代码开发师(初级)实战教程 立即下载