两个可以用来点击首页的网址
Two URLs that you can use to hit the homepage
拥有一个 sitecore 网站。每个国家的情况,有两个 URL 可以用来访问主页。
www.abc.com/en/home
和
www.abc.com/en
我们只想要一个 - 这对 SEO 和分析都不利。
我想退休 www.abc.com/en/home 并希望 www.abc.com/en 只工作。
我已经使用嵌入式 URL = 总是在 web.config 但对我不起作用。
如果您在 LinkManager 中使用 LanguageEmbedding.Always。
使用 Sitecore LinkManager 生成的链接始终具有语言代码。
但是其他 urls 也可以。
您可以使用 Canonical 参见 Tip 17 搜索引擎。
或者,如果 url 与您想要的 url 不匹配,您可以进行重定向。
或block/redirect您url中的netwerk/loadbalancer/webserver或重定向模块或Sitecore <httpRequestBegin>
管道。 (只是你觉得方便)
一个简单的解决方案是在您的母版页中放置一段代码,如下所示:
string baseUrl = LinkManager.GetItemUrl(Sitecore.Context.Item);
if (baseUrl != Request.Path)
{
Response.RedirectPermanent(baseUrl);
}
也适用于 url 个别名。
使用 IIS URL 使用以下规则重写模块:
<rule name="Redirect home" stopProcessing="true">
<match url="^/en/home/?$" />
<action type="Redirect" url="/en/" />
</rule>
在你们所有人的帮助下,我的错误终于得到解决,我想出了适用于任何情况的代码,例如附加查询字符串或不附加查询字符串。
string baseUrl = Sitecore.Links.LinkManager.GetItemUrl(Sitecore.Context.Item);
if (baseUrl.ToLower().Contains("?"))
{
baseUrl = Request.RawUrl.Substring(0, Request.RawUrl.IndexOf("?"));
}
string Qurl = Request.RawUrl;
string AppendedUrl = string.Empty;
if (Qurl.ToLower().Contains("?"))
{
Qurl = Request.RawUrl.Substring(0, Request.RawUrl.IndexOf("?"));
AppendedUrl = Request.RawUrl.Substring(Qurl.Length);
}
string fullPath = baseUrl + AppendedUrl;
if (baseUrl != Qurl)
{
Response.RedirectPermanent(fullPath);
}
}
}
试试这个:)
拥有一个 sitecore 网站。每个国家的情况,有两个 URL 可以用来访问主页。
www.abc.com/en/home
和
www.abc.com/en
我们只想要一个 - 这对 SEO 和分析都不利。 我想退休 www.abc.com/en/home 并希望 www.abc.com/en 只工作。
我已经使用嵌入式 URL = 总是在 web.config 但对我不起作用。
如果您在 LinkManager 中使用 LanguageEmbedding.Always。 使用 Sitecore LinkManager 生成的链接始终具有语言代码。 但是其他 urls 也可以。
您可以使用 Canonical 参见 Tip 17 搜索引擎。
或者,如果 url 与您想要的 url 不匹配,您可以进行重定向。
或block/redirect您url中的netwerk/loadbalancer/webserver或重定向模块或Sitecore <httpRequestBegin>
管道。 (只是你觉得方便)
一个简单的解决方案是在您的母版页中放置一段代码,如下所示:
string baseUrl = LinkManager.GetItemUrl(Sitecore.Context.Item);
if (baseUrl != Request.Path)
{
Response.RedirectPermanent(baseUrl);
}
也适用于 url 个别名。
使用 IIS URL 使用以下规则重写模块:
<rule name="Redirect home" stopProcessing="true">
<match url="^/en/home/?$" />
<action type="Redirect" url="/en/" />
</rule>
在你们所有人的帮助下,我的错误终于得到解决,我想出了适用于任何情况的代码,例如附加查询字符串或不附加查询字符串。
string baseUrl = Sitecore.Links.LinkManager.GetItemUrl(Sitecore.Context.Item);
if (baseUrl.ToLower().Contains("?"))
{
baseUrl = Request.RawUrl.Substring(0, Request.RawUrl.IndexOf("?"));
}
string Qurl = Request.RawUrl;
string AppendedUrl = string.Empty;
if (Qurl.ToLower().Contains("?"))
{
Qurl = Request.RawUrl.Substring(0, Request.RawUrl.IndexOf("?"));
AppendedUrl = Request.RawUrl.Substring(Qurl.Length);
}
string fullPath = baseUrl + AppendedUrl;
if (baseUrl != Qurl)
{
Response.RedirectPermanent(fullPath);
}
}
}
试试这个:)