没有所谓的捷径
一切都是时间最平凡的累积

iis7设置404,使用web.config配置404,HTTP错误httpErrors模块

本文最后更新:2019年12月2日,已超过1605天未更新,如果文章内容失效,请留言反馈本站。

如果不想了解可以直接查阅文章后半部分配置示例部分。

概括

<httpErrors>元素允许您为Web站点或应用程序配置自定义错误消息。通过自定义错误消息,您可以通过提供文件,返回其他资源或在网站访问者无法访问其请求的内容时重定向到URL来提供友好或更具信息性的响应。例如,您可能希望自定义网站的每个错误消息页面,使其具有与站点其余部分相同的外观。

<httpErrors>元素包含一组<error>元素,每个元素定义一个IIS用于响应特定HTTP错误的错误消息。您可以通过向Web 站点,应用程序或URL的Web.config文件中<error><httpErrors>元素添加元素,将自定义错误消息添加到IIS 。每个<error>元素都使用responseMode属性来指定IIS是否提供静态内容,动态内容,还是重定向到单独的URL以响应错误。

您可以使用该<remove>元素从站点或应用程序从IIS配置层次结构中的更高级别继承的错误消息集合中删除特定错误消息。此外,您可以使用该<clear>元素从您的站点或应用程序继承的HTTP错误消息集合中删除所有HTTP错误消息。

<httpErrors>元素还包含配置IIS 7以处理导致错误的请求的属性。所述existingResponse属性定义当服务器返回一个HTTP错误状态代码什么IIS 7确实到现有的响应。该defaultPath如果选择指定属性定义客户错误页面的路径文件responseMode中的一个属性<error>元素。

detailedMoreInformationLink属性指定有关特定错误链接到更多的信息。

<httpErrors>元素还可以包含errorMode属性,您可以使用该属性来控制IIS在发生HTTP错误时返回到浏览器的详细程度。您可以将errorMode属性设置为DetailedLocalOnly(默认设置),也可以将其设置为CustomDetailed。如果指定DetailedLocalOnly,或者未指定errorMode值,则IIS仅向本地服务器上的浏览器返回详细的错误信息,并向外部计算机上的浏览器返回自定义错误消息。如果将errorMode值设置为Custom,IIS仅向所有请求的浏览器返回自定义错误消息。如果将errorMode值设置为Detailed,IIS会向所有请求的浏览器返回详细的错误信息。默认的DetailedLocalOnly值允许您解决本地服务器上的HTTP错误,同时不将敏感信息暴露给外部浏览器。

默认情况下,IIS提供在%SystemRoot%\ Help \ IisHelp \ Common文件夹中存储的文件中定义的错误消息。您可以为用户创建自定义错误消息,并将IIS配置为在您的站点遇到特定HTTP错误时返回此页面。

兼容性

笔记
IIS 10.0 <httpErrors>在IIS 10.0中未修改该元素。
IIS 8.5 <httpErrors>IIS 8.5中未修改该元素。
IIS 8.0 <httpErrors>在IIS 8.0中未修改该元素。
IIS 7.5 allowAbsolutePathsWhenDelegated属性已添加到<httpErrors>IIS 7.5中的元素
IIS 7.0 <httpErrors>元素是在IIS 7.0中引入的。
IIS 6.0 <httpErrors>元素替换了IIsWebService配置数据库对象的IIS 6.0 HttpErrors属性。

安装

<httpErrors>元素包含在IIS 7的默认安装中。

操作步骤

如何添加自定义错误页面

  1. 打开Internet信息服务(IIS)管理器
    • 如果您使用的是Windows Server 2012或Windows Server 2012 R2:
      • 在任务栏上,单击“ 服务器管理器”,单击“ 工具”,然后单击“ Internet信息服务(IIS)管理器”
    • 如果您使用的是Windows 8或Windows 8.1:
      • 按住Windows键,按字母X,然后单击“ 控制面板”
      • 单击“ 管理工具”,然后双击“ Internet信息服务(IIS)管理器”
    • 如果您使用的是Windows Server 2008或Windows Server 2008 R2:
      • 在任务栏上,单击“ 开始”,指向“ 管理工具”,然后单击“ Internet信息服务(IIS)管理器”
    • 如果您使用的是Windows Vista或Windows 7:
      • 在任务栏上,单击“ 开始”,然后单击“ 控制面板”
      • 双击“ 管理工具”,然后双击“ Internet信息服务(IIS)管理器”
  2. 在“ 连接”窗格中,展开服务器名称,展开“ 站点”,然后导航到要为其配置自定义错误页面的网站或应用程序。
  3. 在“ 主页”窗格中,双击“ 错误页面”
  4. 在“ 操作”窗格中,单击“ 添加...”
  5. 在“ 添加自定义错误页面”对话框的“ 状态码”下,键入要为其创建自定义错误消息的HTTP状态码的编号。
  6. 在“ 响应操作”部分中,执行以下操作之一:
    • 选择将静态文件中的内容插入到错误响应中,以便为自定义错误提供静态内容,例如.html文件。
    • 选择“ 在此站点上执行URL”以提供动态内容,例如,自定义错误的.asp文件。
    • 选择使用302重定向进行响应,将客户端浏览器重定向到包含自定义错误文件的其他URL。
  7. 在“ 文件路径”文本框中,如果选择“将静态文件中的内容插入到错误响应中”或“自定义错误页面的URL”(如果您使用此站点上的“ 执行URL”或“ 响应”,请在“ 文件路径”文本框中键入自定义错误页面的路径302重定向,然后单击“ 确定”

     注意

    如果在此站点上选择“ 执行URL”,则路径必须是相对路径。如果选择 使用302重定向进行响应,则URL必须是绝对URL。

配置

您可以<httpErrors>在ApplicationHost.config文件中的服务器级别以及相应Web.config文件中的站点和应用程序级别配置元素。

属性

属性 描述
allowAbsolutePathsWhenDelegated 可选的布尔属性。

设置为true时,<httpErrors>委派节时,允许自定义错误页面使用绝对路径。设置为false时,仅允许相对于站点根目录的路径。

默认值为false

defaultPath 可选字符串属性。

指定自定义错误页面的默认路径。路径类型由defaultResponseMode属性确定。如果选择“ 文件”,则返回文件路径。如果选择ExecuteURLRedirect路径类型,则返回自定义错误页面的URL。

defaultResponseMode 可选的枚举属性。

指定返回自定义错误内容的方式。

所述defaultResponseMode属性可以是以下可能的值中的一个; 默认是File

描述
File 提供静态内容,例如,自定义错误的.html文件。如果responseMode设置为File,则路径值必须是文件路径。

数值是0

ExecuteURL 提供动态内容,例如,自定义错误的.asp文件。如果responseMode设置为ExecuteURL,则路径值必须是服务器相对URL。

数值是1

Redirect 将客户端浏览器重定向到包含自定义错误文件的其他URL。如果responseMode设置为Redirect,则路径值必须是绝对URL。

数值是2

detailedMoreInformationLink 可选字符串属性。

指定页面底部显示的链接,该链接包含有关特定错误的更详细信息的页面。您可以使用此属性将最终用户指向自定义位置以获取错误信息。状态,子状态,HRESULT和消息ID作为查询字符串的一部分发送。

默认值为https://go.microsoft.com/fwlink/?LinkID=62293

errorMode 可选的枚举属性。

指定是否启用HTTP错误。

所述errorMode属性可以是以下值中的一个; 默认是DetailedLocalOnly

描述
DetailedLocalOnly 如果请求来自本地计算机,则返回详细的错误信息,如果请求来自外部计算机,则返回自定义错误消息。

数值是0

Custom 用您指定的自定义页面替换模块或服务器生成的错误。此模式可用于向最终用户提供更友好的错误消息。

注意:此设置会关闭详细错误,即使对于本地请求也是如此。

数值是1

Detailed 将详细的错误信息发送回客户端。此模式对于测试和调试网站和应用程序非常有用。

数值是2

existingResponse 可选的枚举属性。

指定当HTTP状态代码是错误的,即响应代码> = 400会发生什么情况的现有响应

existingResponse属性可以是以下值中的一个; 默认是Auto

描述
Auto 仅在设置了SetStatus标志时才保持响应不变。

数值是0

Replace 即使设置了SetStatus标志,也会替换现有响应。

数值是1

PassThrough 如果存在现有响应,则保持响应不变。

数值是2

子元素

元件 描述
error 可选元素。

向HTTP错误集合添加HTTP错误。

remove 可选元素。

从HTTP错误集合中删除对HTTP错误的引用。

clear 可选元素。

从HTTP错误集合中删除对HTTP错误的所有引用。

配置示例

以下配置示例(如果包含在Web站点或应用程序的Web.config文件中)使用errorMode属性仅允许在本地计算机上显示详细的错误消息。它还使用defaultResponseMode属性来设置站点或应用程序的响应模式。然后,该示例删除500状态代码的继承错误消息。接下来,它将prefixLanguageFilePath属性设置为IIS应搜索新自定义错误页面的目录,并将path属性设置为500.htm,即包含自定义错误消息的文件。

<configuration>
   <system.webServer>
      <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" >
         <remove statusCode="500" />
         <error statusCode="500"
            prefixLanguageFilePath="C:\Contoso\Content\errors"
            path="500.htm" />
       </httpErrors>
   </system.webServer>
</configuration>

常用示例:

我们经常使用的就是404设置。打开要设置站点,找到错误页。

选中404,然后点击“编辑功能设置”,勾选“自定义错误页”,确认关闭窗口。再次点击“编辑”,选择“在此网站上执行URL”,填写真实的404页面路径和文件名。注意这个路径是相对于网站的,比如在网站404目录下,就要填写/404/404.html

如果没有iis管理控制权,可以在网站主目录下创建一个web.config文件,在里面直接写入规则。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404" path="/404.html" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
</configuration>

注意如果原网站目录下有web.config,只需要在<system.webServer>配置节点后加上

<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404" path="/404.html" responseMode="ExecuteURL" />
</httpErrors>

注意:以上方法设置后返回状态码是200,如果需要返回404状态码,就要指定动态文件,例如404.php,并在动态404文件头部添加返回码:

asp添加:<%Response.Status="404 Moved Permanently"%>
php添加:<?php header("HTTP/1.0 404 Not Found")?>

另外一种指定静态文件返回404状态码方法,如下图所示:

iis7和apache 设置404方法

对应的web.config规则文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpErrors errorMode="Custom">
            <remove statusCode="404" subStatusCode="-1" />
            <error statusCode="404" prefixLanguageFilePath="" path="404.htm" responseMode="File" />
        </httpErrors>
    </system.webServer>
</configuration>
» 站长码字辛苦,有用点个赞吧,也可以打个
» 若转载请保留本文转自:豫章小站 » 《iis7设置404,使用web.config配置404,HTTP错误httpErrors模块》
» 本文链接地址:https://blog.mydns.vip/1844.html
» 如果喜欢可以: 点此订阅本站 有需要帮助,可以联系小站
赞(2) 打赏 【豫章小站原创文章】
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@mydns.vip。文章观点不代表本站立场。本站原创内容未经允许不得转载,或转载时需注明出处:豫章小站 » iis7设置404,使用web.config配置404,HTTP错误httpErrors模块
分享到: 更多 (0)

评论 抢沙发


  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

智慧源于勤奋,伟大出自平凡

没有所谓的捷径,一切都是时间最平凡的累积,今天所做的努力都是在为明天积蓄力量

联系我们赞助我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏