如何通过Powershell设置IIS自定义错误?

时间:2016-05-26 16:48:00

标签: powershell iis iis-8

我试图弄清楚如何使用Powershell为错误401设置IIS自定义错误,所以我试过这个没有成功。

Set-WebConfigurationProperty -Filter "/system.webServer/httpErrors/error[@statusCode='401']" -Location IIS:\Sites\MySite -Name path -Value "~/Content/CustomErrors/401.html"

我想实现此配置结果。

Desired configuration

提前致谢。

2 个答案:

答案 0 :(得分:2)

经过长时间的尝试错误循环后,我终于想出了如何解决这个问题,如果有人有兴趣我会告诉你我的解决方案。

Set-Location IIS:\Sites\MySite

add-WebConfiguration -Filter /System.WebServer/HttpErrors -Value @{StatusCode=401;PrefixLanguageFilePath="$Null";  Path="~/Content/ErrorMessages/401.html"; ResponseMode="ExecuteURL"}

答案 1 :(得分:0)

这对我有用,在我的情况下我想重定向到root中的index.html页面,以获取404状态错误代码

我必须:

  1. 启用IIS Powershell。

    import-module WebAdministration
    
  2. 删除语言前缀

    Set-WebConfigurationProperty -PSPath IIS:\Sites\YOUR_SITE_NAME -Filter "/system.webServer/httpErrors/error[@statusCode='404']" -Name "prefixLanguageFilePath" -Value ""
    
  3. 将路径值设置为我想在404 http状态代码上显示的页面(在我的情况下是网站的根目录)

    Set-WebConfigurationProperty -PSPath IIS:\Sites\YOUR_SITE_NAME -Filter "/system.webServer/httpErrors/error[@statusCode='404']" -Name "path" -Value "/"
    
  4. 将响应模式(类型)更改为执行URL

    Set-WebConfigurationProperty -PSPath IIS:\Sites\YOUR_SITE_NAME -Filter "/system.webServer/httpErrors/error[@statusCode='404']" -Name "ResponseMode" -Value "ExecuteURL"