9

カスタム 404 ページを含む ASP.NET 2.0 Web サイトを持っています。コンテンツが見つからない場合、サイトは aspxerrorpath=/mauro.aspx というクエリ文字列を追加したカスタム 404 ページを提供します。404 ページ自体は、HTTPステータス 200 で提供されます。これを解決するために、追加しました

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.StatusCode = 404;
    }

Google ウィジェットを追加しましたが、2 つの問題があります。Internet Explorer 7では、本来あるべき場所に表示されません。コンテンツに追加すると、char 79 の 226 行目あたりで「不明なエラー」が発生します。ヘッド セクションに追加すると、コンテンツの上に検索ボックスが表示されます。Firefox では問題なく動作します。

だから私の問題は次のとおりです。

  1. ウィジェットをインラインで表示するにはどうすればよいですか?
  2. エラー ページを要求されたファイルの元の名前とパスを使用して 404 としてレンダリングし、mauro.aspx を要求したときに 404 ページのコンテンツを取得するが、mauro.aspx の URL を取得するにはどうすればよいですか? ( begin_request global.asax ファイルでURL を書き換える必要があると思いますが、ばかげたことをする前にこれを確認してください。)
4

2 に答える 2

10

ASP.NET 3.5 SP1 には、リダイレクトしないように使用できる新しいリダイレクト モードがあります。エラーページが表示されますが、URL は同じままです。

「URL リダイレクトにも適しています。web.config で redirectMode を "responseRewrite" に設定すると、カスタム エラー ページへのリダイレクトを回避し、ブラウザの URL をそのままにしておくことができます。」

于 2008-09-30T09:31:23.130 に答える
1

global.asaxファイルでこれを行うことで404を処理しました

protected void Application_BeginRequest(object sender, EventArgs e)
{
    string url = Request.RawUrl;
    if ((url.Contains(".aspx")) && (!System.IO.File.Exists(Server.MapPath(url))))
    {
        Server.Transfer("/Error/FileNotFound.aspx");
    }
}

さて、誰かがGoogleウィジェットで私を助けることができれば、それは素晴らしいことです!

于 2008-09-30T09:25:18.997 に答える