现在的位置: 网页制作教程网站制作经验 >正文
iis安装和问题

IIS7设置了404为什么还返回200或500状态码

发表于2016/11/3 网站制作经验 1条评论 ⁄ 热度 5,508℃

网站迁移更换到win2008系统上,IIS也随机用上了7.5版本,一切都很顺利,当设置完404错误页,检测是否生效,发现返回的是200状态码,这就等于告诉用户或搜索引擎访问的页面正常。这下有点懵逼,原来在iis6.0上,也没出现过这种情况啊,哪里出现了问题。费劲巴拉找了一堆资料,总算把问题搞清楚了。今天记录下来,怕时间长了给忘了。如果你看到这篇文章,正好对你有用,那也算是分享了。废话不多说,上正题。

IIS上设置了404返回200状态码的原因

因为在IIS6/7里面有个错误页面设置,其中404设置选项有两个响应操作分别为:文件和URL。当选择在此网站执行URL时,会直接调用填写的404页面模板URL。用户访问一个不存在的URL时,IIS服务器只是读取了另外一个存在的URL而已,因为这个URL存在,所以返回的状态码是200。

IIS设置404返回200状态码解决办法

1. 打开 C:\Windows\System32\inetsrv\config\ 路径下的 applicationHost.config 文件(该文件是设置IIS参数的);

2. 搜索找到“<httpErrors>” 选项,将该选项的 allowAbsolutePathsWhenDelegated设置为”true”;

<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">修改成:
<httpErrors allowAbsolutePathsWhenDelegated="true" lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">

修改applicationHost.config文件

注意:如果不做以上两步操作,将返回500状态码

3. 在IIS中,找到对应站点,打开“功能视图”-“IIS栏”-“错误页”;

4. 双击“404”,打开“编辑自定义错误页”对话框;

5. 选中“将静态文件中的内容插入错误响应中”,选择或输入自定义404错误页的绝对路径(注意:此处路径是使用绝对路径,一定不能使用相对路径,否则会找不到页面),点击“确定”进行保存;

IIS设置404

如果选择在此网站上执行URL,就将返回200状态码。

6. 选中“404”,点击右侧栏中的“编辑功能设置”,打开“编辑自定义错误页”对话框;

7. 在“错误响应”框中,选中“自定义错误页”,点击“确定”进行保存;

8. 重启IIS。

优点:设置之后,返回的状态代码依旧是404,不影响搜索引擎SEO优化;

扩展阅读:IIS安装教程设置404页面后提示“系统找不到指定的文件”的解决办法

  • 甜甜圈

    真的是很棒的文章,对新人很有帮助,谢谢你们