ASP.NET MVC 4-301 redirige dans RouteConfig.cs

Comment puis-je ajouter une route à la RouteConfig.fichier cs dans un ASP.NET MVC 4 application pour effectuer une redirection permanente 301 vers une autre route?

je voudrais que certaines routes différentes pointent vers la même action du contrôleur - il semble qu'un 301 serait une bonne pratique pour cela, spécialement pour le référencement?

Merci.

30
demandé sur niico 2013-06-07 12:11:18

2 réponses

Vous devez utiliser RedirectPermanent, voici un exemple:

public class RedirectController : Controller
{

    public ActionResult News()
    {

        // your code

        return RedirectPermanent("/News");
    }
}

dans le global asax:

    routes.MapRoute(
        name: "News old route",
        url: "web/news/Default.aspx",
        defaults: new { controller = "Redirect", action = "News" }
    );
46
répondu Bastianon Massimo 2013-06-07 09:24:51

je sais que vous avez spécifiquement demandé comment le faire sur le RouteConfig, mais vous pouvez également faire la même à l'aide de IIS Règles de Réécriture. Les règles en direct sur votre site web.config donc vous n'avez même pas besoin d'utiliser IIS pour créer les règles, vous pouvez simplement les ajouter au web.config et se déplacera avec l'application à travers tous vos environnements (Dev, Staging, Prod, etc) et garder votre RouteConfig propre. Il faut que le Module IIS soit installé sur IIS 7, mais je crois qu'il est préinstallé sur 7.5+.

Voici un exemple:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Redirect t and c" stopProcessing="true">
                    <match url="^terms_conditions$" />
                    <action type="Redirect" url="/TermsAndConditions" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
25
répondu Jonas Stawski 2013-08-17 20:14:28