BlogEngine.NET 1.4.5.7 は、なぜか Web.Config で CustomErrors Mode="Off" なため、
デフォルトで用意されているエラーハンドリング用ページが使われていません

そこで Web.Config を書き変えてカスタムエラーを有効にし、
さらに .Text からの移行で起きている /archive/ 配下のエラーをハンドルするため、
コードを少し書き変えました。

書き変えたのは error404.aspx.cs で、
PageLoad() メソッドの最初で "/post/" を調べているところを、OR条件で "/archive" も調べるようにして、
これにヒットしたらダイレクトにサーチをかけて、該当トピックの候補が表示されるようにしました。

// 元のメソッド
if (Request.QueryString["aspxerrorpath"] != null && Request.QueryString["aspxerrorpath"].Contains("/post/"))

// 書き変えたメソッド
if (Request.QueryString["aspxerrorpath"] != null && (Request.QueryString["aspxerrorpath"].Contains("/post/") || Request.QueryString["aspxerrorpath"].Contains("/archive/")))

Currently rated 2.6 by 80 people

  • Currently 2.55/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Comments are closed