网站迁移更换到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”;
注意:如果不做以上两步操作,将返回500状态码。
3. 在IIS中,找到对应站点,打开“功能视图”-“IIS栏”-“错误页”;
4. 双击“404”,打开“编辑自定义错误页”对话框;
5. 选中“将静态文件中的内容插入错误响应中”,选择或输入自定义404错误页的绝对路径(注意:此处路径是使用绝对路径,一定不能使用相对路径,否则会找不到页面),点击“确定”进行保存;
如果选择在此网站上执行URL,就将返回200状态码。
6. 选中“404”,点击右侧栏中的“编辑功能设置”,打开“编辑自定义错误页”对话框;
7. 在“错误响应”框中,选中“自定义错误页”,点击“确定”进行保存;
8. 重启IIS。
优点:设置之后,返回的状态代码依旧是404,不影响搜索引擎SEO优化;
扩展阅读:IIS安装教程、设置404页面后提示“系统找不到指定的文件”的解决办法