I custom gesetzt in meinem web.configASP.NET MVC benutzerdefinierte Fehlerseite (Statuscode 404 führt eine 500)
<customErrors mode="On" defaultRedirect="/Error/GeneralError">
<error statusCode="404" redirect="/Error/NotFound"/>
</customErrors>
fein Dies funktioniert vor Ort haben. Ein 404 löst einen 404 aus. Auf dem Shared-Hosting wird die Seite des Standard-Servers 404 angezeigt, es sei denn, ich habe 404 so eingestellt, dass sie auf/Error/NotFound zeigt. Das ist gut. Nun wird die benutzerdefinierte 404-Seite angezeigt, außer der Antwortstatuscode ist 200. Wenn ich also versuche, Response.StatusCode = 404 zu werfen; in meiner NotFound Aktion in Errorcontroller wie folgt aus:
public class ErrorController : Controller
{
public ActionResult NotFound()
{
Response.StatusCode = 404;
return View();
}
}
der Server führt einen Statuscode 500 Internal Server Error aber meine GeneralError Seite zeigt nicht nur eine leere weiße Seite ohne Quelle.
Ich habe viele verschiedene Kombinationen ausprobiert, aber ich kann nicht finden, wie man meine benutzerdefinierte 404-Seite zusammen mit einer 404-Antwort zeigt.
Irgendwelche Ideen?
Gibt es einen Schaden, der es erlaubt, mit 200 OK auf einem NotFound zu reagieren? Vielleicht Probleme mit Web-Crawling oder Google Webmaster-Tools. – mark123
Nur ein Gedanke. Wäre es nicht besser zu verwenden: defaultRedirect = "~/Fehler/GeneralError" und redirect = "~/Fehler/NotFound" mit MVC-Anwendungen. (Beachten Sie die ~ am Anfang der Strings. Dies wird auf die Basis der Anwendung nicht die Basis der Domäne zuordnen ... wie Sie vielleicht schon wissen.) – jwwishart