启用IP and Domain Restriction后,如何替换IIS默认403.503错误页?
解决IIS IP/域名限制后自定义错误页不生效的问题
核心原因
IP与域名限制触发的错误页是由IIS内核(http.sys)直接生成的,不属于常规IIS托管模块处理的范畴,所以通过站点「错误页」功能添加的自定义设置不会生效,也找不到对应的模板文件。
具体解决步骤
确认Deny Action Type设置
首先检查IP和域名限制的Deny Action Type,必须设置为Forbidden(对应403状态码)或Unauthorized(401),如果选的是Abort Request,IIS会直接断开连接,不会返回任何错误页。配置内核级自定义错误页
需要修改IIS的全局配置文件applicationHost.config(路径:C:\Windows\System32\inetsrv\config\applicationHost.config),添加对应状态码的错误页规则:- 找到
<httpErrors>节点,添加或修改403.6(IP被拒绝的子状态码)的规则:
其中<httpErrors errorMode="Custom"> <remove statusCode="403" subStatusCode="6" /> <error statusCode="403" subStatusCode="6" path="C:\inetpub\wwwroot\custom-403-6.html" responseMode="File" /> </httpErrors>path替换为你的自定义错误页实际路径,responseMode可选File(直接返回文件)或ExecuteURL(执行指定URL)。 - 或者用
appcmd.exe命令行快速配置:appcmd set config /section:httpErrors /+"[statusCode='403',subStatusCode='6',path='C:\inetpub\wwwroot\custom-403-6.html',responseMode='File']"
- 找到
设置文件权限
确保自定义错误页文件给IIS_IUSRS和IUSR用户分配了读取权限,否则IIS会 fallback 到默认错误页。重启IIS生效
运行命令iisreset重启IIS服务,让配置变更生效。
内容的提问来源于stack exchange,提问作者Konstantin
相关产品推荐
相关产品推荐

