Подтвердить что ты не робот

ASP.NET MVC 4 - 301 Перенаправления в RouteConfig.cs

Как добавить маршрут к файлу RouteConfig.cs в приложении ASP.NET MVC 4, чтобы перенести 301 перенаправление на другой маршрут?

Я хотел бы, чтобы некоторые разные маршруты указывали на одно и то же действие контроллера - похоже, для этого лучше всего подходит 301, особенно для SEO?

Спасибо.

4b9b3361

Ответ 1

Вам нужно использовать RedirectPermanent, вот пример:

public class RedirectController : Controller
{

    public ActionResult News()
    {

        // your code

        return RedirectPermanent("/News");
    }
}

в глобальном asax:

    routes.MapRoute(
        name: "News old route",
        url: "web/news/Default.aspx",
        defaults: new { controller = "Redirect", action = "News" }
    );

Ответ 2

Я знаю, что вы специально спросили, как это сделать на RouteConfig, но вы также можете сделать то же самое, используя Правила перезаписи IIS. Правила живут на вашем web.config, поэтому вам даже не нужно использовать IIS для создания правил, вы можете просто добавить их в web.config и будете перемещаться с помощью приложения через все ваши среды (Dev, Staging, Prod, и т.д.) и сохраните свой RouteConfig. Это требует установки модуля IIS на IIS 7, но я считаю, что он установлен на 7.5 +.

Вот пример:

<?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>