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

How to set the IIS Custom Error via Powershell?

我正在尝试弄清楚如何使用 Powershell 为错误 401 设置 IIS 自定义错误,所以我试过了但没有成功。

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

我要实现这个配置结果

提前致谢。

经过长时间的尝试错误循环,我终于找到了解决方法,如果有人感兴趣,我将向您展示我的解决方案。

Set-Location IIS:\Sites\MySite

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

这对我有用,在我的例子中,我想重定向到根目录中的 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"