开发者社区> 问答> 正文

404页面的HTTP状态是200,求助解决办法

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

是不是我的服务器设置错误呢?还是我使用了加速乐的CDN?设置如下图:






展开
收起
alphafeed 2013-01-21 18:48:28 14415 0
7 条回答
写回答
取消 提交回答
  • 不懂win8的飘过
    2013-02-28 10:18:19
    赞同 展开评论 打赏
  • 通过web.config或动态页面来解决这个问题,说一下如何用web.config,自定义404:

    <configuration>
    <system.webServer>
    <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" >
    <remove statusCode="404" />
    <error statusCode="404" path="404.htm" />
    </httpErrors>
    </system.webServer>
    </configuration>
    把上面的代码按实际情况添加到web.config中就可以了(只适合IIS7)!  
    2013-01-22 15:23:26
    赞同 展开评论 打赏
  • Re404页面的HTTP状态是200,求助解决办法
    貌似我的网站也有这种情况,但是没有去管过也,来个高手支个招,俺也学习下
    2013-01-22 08:55:22
    赞同 展开评论 打赏
  • 回3楼dns2008的帖子
    你说的这个东西不太适用

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

    回6楼ap2836i0b的帖子
    文中所说的: 在IIS Manager中,找到Features Views->Management Area,双击"Feature Delegation"。选择Error Pages并单击Read Only,如下图。

    Features Views->Management Area中文意思是什么呀?我怎么没有找到对应的项呢?

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

    回8楼ap2836i0b的帖子
    在IIS管理主页中的“功能委派”里,我将“错误页”在右侧将其设置为“只读”,但是到了第二步,我的web.config文件与MSDN博客上的不一样,我继续将httpErrors段删除,然后重启IIS后,请求不存在时,出现的是IIS默认的404页面,状态是404,但是这样的话就等于我没有自定义404页面了,求解?

    我的web.config
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <defaultDocument>
                <files>
                    <clear />
                    <add value="index.html" />
                    <add value="index.php" />
                    <add value="Default.htm" />
                    <add value="Default.asp" />
                    <add value="index.htm" />
                    <add value="iisstart.htm" />
                    <add value="default.aspx" />
                </files>
            </defaultDocument>
            <httpErrors errorMode="DetailedLocalOnly">
                <remove statusCode="404" subStatusCode="-1" />
                <error statusCode="404" prefixLanguageFilePath="" path="/404.htm" responseMode="ExecuteURL" />
            </httpErrors>
            <staticContent>
                <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
            </staticContent>
        </system.webServer>
    </configuration>
    MSDN上说明需要删除的web.config段

    <handlers accessPolicy="Read, Script" />

            <httpErrors>

                <remove statusCode="404" subStatusCode="-1" />

                <error statusCode="404" prefixLanguageFilePath="" path=" E:\Temp\error404.html " responseMode="File" />

    </httpErrors>




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

    回10楼ap2836i0b的帖子
    但是默认的404页面是对于IIS上所有网站而言的,服务器上有多个网站,如果不能自定义网站的404页面,上面提到的所有操作都是白做的

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

    Re404页面的HTTP状态是200,求助解决办法
    我发现阿里云官方网站及论坛的404页面(www.aliyun.com/notfound/ )的http状态码也是200!!!

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

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

    回12楼xfzx.org的帖子
    确实是用web.config解决,不过我不明白为什么自动生成的web.config不能返回404状态,最后解决办法bbs.aliyun.com/read.php?tid=132726
    2013-01-22 08:39:35
    赞同 展开评论 打赏
  • Re404页面的HTTP状态是200,求助解决办法
    http://help.dns2008.com/html/webhost/2011/1202/16784.html

    希望这个能帮到你~
    2013-01-21 19:41:20
    赞同 展开评论 打赏
  • Re404页面的HTTP状态是200,求助解决办法
    很久没用过2008,坐等其他人帮吧
    2013-01-21 19:28:04
    赞同 展开评论 打赏
  • 我之前用过windows 2008,你的设置没用问题,要修改一个东西,具体怎么进入那个位置我忘了,好像是左边区域选择网站之外的那个栏目,很长时间没用2008了,界面都搞忘了

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

    回 楼主(alphafeed) 的帖子
    http://blogs.msdn.com/b/asiatech_zh-cn/archive/2010/12/27/iis7-404-500-19.aspx

    这里的方案二便是我说的解决方法,是把那里的值设为只读即可。

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

    回 7楼(alphafeed) 的帖子
    里面有个“功能委派”的选项,设置为只读

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

    回 9楼(alphafeed) 的帖子
    找到默认404页面的地址,替换为你的404错误页面即可,404页面用静态页面即可
    2013-01-21 19:24:50
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

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