4

Web アプリをカスタム 404 ページにリダイレクトしようとしています。「.aspx」拡張子が付いている場合を除き、すべての URL で機能します。

サーバーは Windows Server 2008 で、web.config には次の設定があります (簡単な例として google.com を使用)。

<customErrors defaultRedirect="http://www.google.com" mode="On" redirectMode="ResponseRedirect"></customErrors>

<httpErrors errorMode="Custom">
<clear />
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/404-Page/" responseMode="ExecuteURL" />
<error statusCode="500" prefixLanguageFilePath="" path="/404-Page/" responseMode="ExecuteURL" />
</httpErrors>

繰り返しますが、HTTP エラーは、「.aspx」の拡張子以外のすべてに対して機能します。

4

3 に答える 3

0

IIS6でも同様の問題がありました。global.asax の Application_Error で処理することになりました。それを機能させるには、404 カスタム ページを存在しない aspx ページに設定する必要がありました (既存の aspx ページに設定すると、EPiServer の内部エラー処理によって飲み込まれてしまいます...)。

于 2012-09-19T07:05:32.007 に答える
0

このcustomErrors要素は、ASP.NET アプリケーションのカスタム エラー メッセージに関する情報を提供します。トラップする特定の HTTP エラー コードerrorの要素に子要素を追加してみてください。customErrors

<error statusCode="404" redirect="error404.htm"/>
于 2012-09-17T22:42:12.327 に答える
0

この問題を解決するために、エラーを乗っ取り、ユーザーを web.config ( の下customErrors) に設定されているカスタム 404 ページに転送するモジュールを作成する必要がありました。モジュールは、アプリケーションがエラーを受け取るたびにイベント ハンドラーを追加します。

    public void Init(HttpApplication context)
    {
        context.Error += new EventHandler(FileNotFound_Error);
    }

そして、関数FileNoteFound_Errorはリダイレクトを行います。

于 2012-09-26T18:48:03.403 に答える