Domanda

Probabilmente sto trascurando qualcosa di veramente semplice qui, ma sto cercando di reindirizzare tutti gli URL non validi a un'azione che filtra l'URL in base alle condizioni e quindi 301 reindirizza a una pagina adatta o genera una pagina 404.

A tal fine ho un percorso come questo alla fine della mia tabella di percorso:

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

E un'azione come questa:

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... */));
}

Funziona perfettamente a livello locale.

Tuttavia, quando distribuiti su IIS6, gli URL che non includono .mvc (ad esempio oldfile.php) non vengono mai inviati al processo ASP.NET per il routing.

C'è una soluzione semplice / sto trascurando qualcosa?

MODIFICA: Ciò è correlato a questa domanda , tuttavia in IIS6 Gli URL senza .mvc non vengono inviati per l'elaborazione ASP.NET MVC.

È stato utile?

Soluzione

Molto probabilmente durante la distribuzione sul server, ASP.Net non viene invocato.

Vorrei impostare il mapping dei caratteri jolly in IIS in modo che le vostre richieste utilizzino ASP.Net per soddisfare le richieste.

Apri Gestione IIS, fai clic con il pulsante destro del mouse sulla tua app, vai su Proprietà, quindi sulla scheda Directory Home, quindi fai clic su Configurazione. In Mappe delle applicazioni jolly, fai clic su Inserisci (non Aggiungi, che è confuso appena sopra), quindi inserisci C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll per & # 8220; eseguibile & # 8221; e deseleziona Verifica che il file esista.

Per ulteriori informazioni, visitare la fonte che mi ha aiutato con questo problema a: http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top