Iis 7 没有为无扩展URL提供自定义404页面

Iis 7 没有为无扩展URL提供自定义404页面,iis-7,web-config,Iis 7,Web Config,我遇到了一种情况 我的自定义404页面可以很好地使用带有扩展名的URL 自定义页面URL将按预期提供 但是,如果您尝试不带.aspx扩展名的链接 它将转到IIS默认页面。你知道为什么吗 这是我的配置,在system.webserver内部 <httpErrors> <remove statusCode="500" subStatusCode="-1" /> <remove statusCode="404" sub

我遇到了一种情况

我的自定义404页面可以很好地使用带有扩展名的URL

自定义页面URL将按预期提供

但是,如果您尝试不带.aspx扩展名的链接

它将转到IIS默认页面。你知道为什么吗

这是我的配置,在system.webserver内部

 <httpErrors>
            <remove statusCode="500" subStatusCode="-1" />
            <remove statusCode="404" subStatusCode="-1" />
            <error statusCode="404" prefixLanguageFilePath="" path="/errors/404.aspx" responseMode="ExecuteURL" />
            <error statusCode="500" prefixLanguageFilePath="" path="/errors/500.aspx" responseMode="ExecuteURL" />
        </httpErrors>

我知道这是很久以前发布的,但是这可能会帮助其他人

我也有同样的问题,主要是因为路径值中有“~”,不幸的是这不是你的问题,但是如果你遵循下面的方法,那么你应该会没事的

<customErrors mode="On" redirectMode="ResponseRewrite">
   <error statusCode="401" redirect="~/Errors/Unauthorized.aspx" />
   <error statusCode="403" redirect="~/Errors/Forbidden.aspx" />
   <error statusCode="404" redirect="~/Errors/PageNotFound.aspx" />
   <error statusCode="500" redirect="~/Errors/ServerError.aspx" />
   <error statusCode="501" redirect="~/Errors/ServerError.aspx" />
</customErrors>

<httpErrors errorMode="Custom">
   <remove statusCode="401" subStatusCode="-1" />
   <remove statusCode="403" subStatusCode="-1" />
   <remove statusCode="404" subStatusCode="-1" />
   <remove statusCode="500" subStatusCode="-1" />
   <remove statusCode="501" subStatusCode="-1" />
   <error statusCode="401" path="/Errors/Unauthorized.aspx" responseMode="ExecuteURL" />
   <error statusCode="403" path="/Errors/Forbidden.aspx" responseMode="ExecuteURL" />
   <error statusCode="404" path="/Errors/PageNotFound.aspx" responseMode="ExecuteURL" />
   <error statusCode="500" path="/Errors/ServerError.aspx" responseMode="ExecuteURL" />
   <error statusCode="501" path="/Errors/ServerError.aspx" responseMode="ExecuteURL" />
</httpErrors>

当然,您只需要为那些希望为其创建自定义页面的状态代码添加条目。还要记住,httpErrors应该放在部分,而customErrors应该放在部分

您可以在中添加customErrors部分,因为这将处理托管代码httpErrors部分将处理所有内容的错误

还请注意最后一件事…当您在本地计算机上测试时,ASP.NET和HTTP错误的默认设置是在本地浏览器上显示详细信息。您需要设置customErrorsmode=“On”和httpErrorserrorMode=“Custom”以查看本地计算机上的自定义错误

更多信息可以在这里找到:

这对我有用

<httpErrors errorMode="Custom" existingResponse="Replace" defaultResponseMode="ExecuteURL">
      <clear />
      <error statusCode="404" path="~/error404.aspx" responseMode="Redirect" />
    </httpErrors>

答案很好,我想这就是问题的答案。