Вот как вы настраиваете пользовательскую страницу ошибки 404 для запросов ASP.NET и не-ASPP.NET:
<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 для отправкипользователь на домашней странице, это не только сбивает с толку пользователей, но и машины (например, поисковые системы).Важно использовать код состояния 404, а не код 3xx.
Вы можете достичь желаемой функциональности, используя метаобновление в 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>