ASP.net Webサイトに機能を導入して、ドメイン上の不明なURLに対するリクエストを受信すると、ユーザーがアプリケーションのルートにあるerror_404.htm
ページにリダイレクトされるようにします。
たとえば、リクエストがhttp://www.mydomain.com/blahblahblah
の場合
次に、標準の404エラーページを返す代わりに、リクエストをhttp://www.mydomain.com/error_404.htm
にリダイレクトしたい
更新 IISバージョン7.5および.NET Frameworkバージョン4
更新/blah.aspx
はリダイレクトしますが、/blah
はリダイレクトしません
これは、ASP.NETおよび非ASP.NET要求の両方に対してカスタム404エラーページを構成する方法です。
<configuration>
<system.web>
<compilation targetFramework="4.0" />
<customErrors mode="On" redirectMode="ResponseRewrite">
<error statusCode="404" redirect="http404.aspx" />
</customErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="404"/>
<error statusCode="404" path="/http404.aspx" responseMode="ExecuteURL"/>
</httpErrors>
</system.webServer>
</configuration>
他の人がすでに指摘しているように、ユーザーをホームページに送信するためにHTTPリダイレクトを使用するべきではありません。これはユーザーを混乱させるだけでなく、マシン(検索エンジンなど)をも混乱させます。 3xxコードではなく、404ステータスコードを使用することが重要です。
HTMLのメタリフレッシュを使用して、目的の機能を実現できます。
<%@ Page Language="C#" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Not Found</title>
<meta http-equiv="refresh" content="5;url=/"/>
</head>
<body>
<h1>Not Found</h1>
<p>Redirecting to Home...</p>
</body>
</html>
Web.configにcustomErrors
セクションを含めることで、ユーザーにカスタム404を参照させることができます。
<customErrors mode="On" defaultRedirect="~/errors/GeneralError.aspx">
<error statusCode="404" redirect="~/errors/PageNotFound.aspx" />
</customErrors>
他の人が上記のコメントで述べたように、ユーザーをあなたのホームページに送り返すことは、迷惑なだけでなく、機能的にも混乱を招きます。
私のアドバイスは、何が起こったかについての情報を提供し、次のステップを提供するページにユーザーを送ることです(他の製品を閲覧したり、ダッシュボードに戻ったりするなど)。
私の場合、「ResponseRewrite」を「Response Redirect」に変更するとうまくいきました。
My MVC Web Configファイルの構成:
<system.web>
<compilation targetFramework="4.0" />
<customErrors mode="On" redirectMode="ResponseRedirect">
<error statusCode="404" redirect="~/Home/Login" />
</customErrors>
</system.web>
</configuration>
それは私のために働いています。タグ<system.webServer>
の間にこのコードを含めるだけです。
<httpErrors errorMode="Custom">
<remove statusCode="404"/>
<error statusCode="404" path="~/Erro/PaginaNaoEncontrada.aspx" responseMode="Redirect"/>
</httpErrors>