目前,Sitecore中的「別名」會產生多條路線到相同的內容項目,在某些情況下會對SEO產生負面影響。如何檢查Sitecore項目是否正在使用別名
我正在尋找一種編程方式來檢查當前的頁面/項目/ URL /請求是否使用別名。
我希望會有沿着線的東西:
Sitecore.Web.WebUtil.IsAlias
任何想法如何檢查的別名?
------- ------- UPDATE
下面是這似乎就好了我的工作,目前的解決方案......除非有人有更好的想法?:
protected bool IsAlias
{
get
{
string fullPath = LinkManager.GetItemUrl(Sitecore.Context.Item);
return !HttpContext.Current.Request.RawUrl.StartsWith(fullPath, StringComparison.OrdinalIgnoreCase);
}
}
------更新2 ------
這是一個基於嚴建議的工作解決方案。我不相信Sitecore.Context.Database.Aliases.GetTargetUrl()正在使用Sitecore 6.4.1。所以我不得不湊合一點。
if (Sitecore.Configuration.Settings.AliasesActive &&
Sitecore.Context.Database.Aliases.Exists(HttpContext.Current.Request.RawUrl))
{
const string format = "<link rel=\"canonical\" href=\"{0}://{1}{2}\"/>";
Item targetItem = Sitecore.Context.Database.GetItem(Sitecore.Context.Database.Aliases.GetTargetID(HttpContext.Current.Request.RawUrl));
return String.Format(format, HttpProtocol, HttpContext.Current.Request.Url.Host, LinkManager.GetItemUrl(targetItem));
}
謝謝,這是一個更好的解決方案。我用新代碼更新了我的帖子。 –