Sitecore重定向网址

时间:2016-04-23 17:31:02

标签: .htaccess iis sitecore sitecore8 sitecore8.1

我正在研究301网址重定向,之前我尝试过一些Sitecore重定向模块,但我正在寻找推荐的方法,实际上我有要求从网址中删除语言代码“en”如果语言是英语并保留它其他语言,我在链接管理器中这样做,例如当用户点击关于我们链接时,它将带他到没有这样的语言代码的页面:

  

www.mywebsite.com/about-us

但我仍然可以手动使用语言代码访问网址:

  

www.mywebstie.com/en/about-us

所以现在我有两个网址到同一页面。这不推荐用于SEO。最后我只想为每个页面添加一个网址。

另一个例子,关于我们可以用连字符访问

  

www.mywebstie.com/about-us

和空格

  

www.mywebstie.com/关于我们

解决此问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

使用Canonical是一个选项,<link id="Canonical" rel="canonical" href="/about-us/" />然后你的SEO问题就消失了。

或者只是在您的MasterPage中创建重定向,如下所示:

string goodUrl = LinkManager.GetItemUrl(Sitecore.Context.Item);
if (goodUrl != Request.Path)
{
    Response.RedirectPermanent(goodUrl);
}

除了您已经提到的变体之外,这也适用于/about-us.aspx和/about-us.ashx。其他选项是,你当然也可以在httpRequestBegin管道中解决这个问题,ItemResolver。

答案 1 :(得分:1)

如何实现所需的行为有很多选择:

  1. 您可以配置Sitecore网站

    配置LinkManager(Sitecore.config):更改默认LinkProvider中的设置。要从URL中排除语言,请设置languageEmbedding =“never”languageLocation =“queryString”。

    配置encodeNameReplacements(Sitecore.config):添加此规则

    &lt; replace mode =“on”find =“”replaceWith =“ - ”&gt;

    用破折号替换空格。

  2. 使用canonical links

  3. 为您的目的撰写your own LinkProvider

  4. 安装并配置可以重定向请求的IIS扩展。

    例如:URL RewriteIonic's Isapi Rewrite FilterISAPI_Rewritebe careful如果您打算在CM实例上使用此模块。

  5. 我建议您尝试配置Sitecore LinkManager提供程序,encodeNameReplacement规则(列表中的第1项)并添加规范链接(列表中的第2项)。看来这对你的任务来说已经足够了。

    如果配置和规范链接不够,您可以扩展默认的Sitecore行为(列表中的第3项)或安装和配置IIS模块(列表中的第4项)。