0

現在、web config で以下のコードを使用してカスタム エラー ページを生成できます。

<customErrors mode="On" defaultRedirect="Error404.aspx" redirectMode="ResponseRewrite">
  <error statusCode="404" redirect="~/Error404.aspx"/>
</customErrors>

これは、aspx でない限り、存在しないすべてのページをキャッチします。

例: http://www.monstermmorpg.com/StackOverflow

今こうして作ったら

http://www.monstermmorpg.com/StackOverflow.aspx

グローバル asax がエラーをキャッチしています

void Application_Error(object sender, EventArgs e)
{
    // Code that runs when an unhandled error occurs
    if (Server.GetLastError() != null)
        if (Server.GetLastError().GetBaseException() != null)
        {
            Exception objErr = Server.GetLastError().GetBaseException();
            ErrorLogger.LogError(Request.Url.ToString(), objErr.Message.ToString(), objErr.StackTrace.ToString());
            if (objErr.Message.IndexOf("does not exist") != -1)
            {

                // Response.Redirect("http://www.monstermmorpg.com");

            }
        }
}

しかし、ここでは、アクセスしたいページが存在することをブラウザに伝えます。実際には存在しません。だから私はあなたが探しているページが404であることをブラウザに伝えたい.

どうすればそれを行うことができます=?

グローバル asax で error404.aspx ページにリダイレクトすると、ヘッダーが既に送信されているというエラーが表示されます

ここでエラー

ここに画像の説明を入力

4

1 に答える 1

0

良い一日

次のことを試してみてください

ドメインから www.domain へのグローバル 301 リダイレクト

Response.Status = "301 Moved Permanently";   
Response.AddHeader("Location",   "http://"+host+port+"/404.aspx");
Response.End();
于 2013-11-04T11:56:59.147 に答える