Frage

Ich bin mit Blick auf wahrscheinlich etwas wirklich einfach hier, aber ich versuche alle schlechten URLs auf eine Aktion zu umleiten, die die URL auf Bedingungen basieren filtern und dann entweder 301 Umleitungen an einer geeigneten Seite oder gibt eine 404-Seite.

Zu diesem Zweck habe ich eine Strecke wie diese am Ende meiner Route-Tabelle:

routes.MapRoute("Error", "{*url}", new { controller = "Main", action = "Error" }); 

Und eine Aktion wie folgt:

public ActionResult Error(string url)
{
        if (/* Conditions are met... */)
        {
            Response.Status = "301 Moved Permanently";
            Response.AddHeader("Location", /* Destination URL */);
            Response.End();
        }

        Response.StatusCode = 404;
        return View(/* 404 page... */));
}

Das funktioniert perfekt vor Ort.

Wenn jedoch auf IIS6 eingesetzt, URLs, die .mvc nicht enthalten (z oldfile.php) nie an den ASP.NET-Prozess für das Routing gesendet.

Gibt es eine einfache Lösung / bin ich etwas mit Blick auf?

EDIT: Dies bezieht sich diese Frage jedoch unter IIS6 URLs ohne .mvc ist nicht für ASP.NET MVC Verarbeitung gesendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top