【问题标题】:Asp.net custom 404 not working using Intelligencia rewriterAsp.net 自定义 404 无法使用 Intelligencia 重写器工作
【发布时间】:2012-06-07 18:34:09
【问题描述】:

Web.config:

<customErrors mode="On">
      <error statusCode="404" redirect="~/Page-Introuvable" />
  </customErrors>

重写器配置:

<rewriter>
    <rewrite url="~/Page-Introuvable" to="~/PageNotFound.aspx" />
</rewriter>

当输入这个不存在的 url 时:

http://example.com/qwerty.aspx

我看到我的错误 404 自定义页面

输入时:

http://example.com/qwerty(不带 .aspx)

我收到服务器页面 404 错误

我想知道在这种情况下如何显示我的自定义页面。

非常感谢!

回答

将此添加到 web.config 部分 System.webServer :

<httpErrors errorMode="Custom">
      <clear/>
      <error statusCode="404" responseMode="Redirect" path="PageNotFound.aspx"/>
  </httpErrors>

【问题讨论】:

  • 这对我很有用。谢谢:)

标签: asp.net url-rewriting http-status-code-404


【解决方案1】:

&lt;customErrors&gt; 仅用于由 asp.net 处理的扩展(aspx、ashx...),其他所有使用 &lt;httpErrors&gt;:http://www.iis.net/ConfigReference/system.webServer/httpErrors

<system.webServer>
    <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="ExecuteURL" defaultPath="/error.aspx?code=404">
        <clear/>
        <error statusCode="404" responseMode="ExecuteURL" path="/error.aspx?code=404"/>
    </httpErrors>
</system.webServer>

【讨论】:

  • 感谢您的回答,唯一的问题是 defaultPath 默认被锁定。我在我的问题中写了一个有效的答案。这对我帮助很大!
  • @JoRouss:欢迎您,顺便说一下,解锁(更好的托管公司默认会这样做)并始终指定默认路径,否则您会将应用程序的内部工作暴露给您潜在的恶意用户 - 这是一个安全考虑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-13
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多