在我使用ASP.NET MVC的操作方法中,SEO使用哪种重定向方法?RedirectToAction或Redirect



我正在创建一个支持多种语言的网站。

我还想本地化URL,这样它就会像这样工作:

  • www.domain.com/en/contact
  • www.domain.com/de/contakt

为了实现这一点,我决定为每种语言使用不同的控制器。

我还在cookie中添加了存储访问者偏好语言的代码。

如果同一用户访问www.domain.com,我希望代码检查该cookie,然后用适当的语言将访问者重定向到索引页。

为了实现这一点,我在global.asax中为路线提供了这段代码

            routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "en", action = "LanguageRedirect", id = UrlParameter.Optional }

然后在en-控制器中有LanguageDirect操作方法:

    public ActionResult LanguageRedirect()
    {
        string cultureName="";
        HttpCookie cultureCookie = Request.Cookies["_culture"];
        if (cultureCookie != null)
        {
            cultureName = cultureCookie.Value;
            cultureName = cultureName.Substring(0, 2);
        }
        // Some custom code that checks valid languages
        if (!CultureHelper.isValidCulture(cultureName))
            cultureName = "en";
        return RedirectToAction("Index", cultureName);
    }

我不确定什么应该是合适的SEO重定向方法?我应该只使用RedirectToAction还是应该使用RedirectToActionPermanent

您应该使用RedirectToAction(302)而不是RedirectToActionPermanent(301)。

如果资源已经被分配了新的URI,并且原始URI不再有效,那么基本上应该301重定向。

参考:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

https://webmasters.stackexchange.com/questions/26876/301-redirects-for-regional-variants-of-a-homepage

最新更新