C# 在每个页面标题标签中实现SEO代码
我需要为不同语言或地区的页面编制多个版本的索引,以便Google搜索在位于Sitefinity顶部的ASP.NET项目页面上按语言或地区将用户指向我们页面的最合适版本 根据谷歌文档,为了实现这一点,我需要在我们的html头标签上包含下面的html代码C# 在每个页面标题标签中实现SEO代码,c#,html,asp.net,asp.net-mvc,sitefinity,C#,Html,Asp.net,Asp.net Mvc,Sitefinity,我需要为不同语言或地区的页面编制多个版本的索引,以便Google搜索在位于Sitefinity顶部的ASP.NET项目页面上按语言或地区将用户指向我们页面的最合适版本 根据谷歌文档,为了实现这一点,我需要在我们的html头标签上包含下面的html代码 到底是什么不起作用?结果是什么?上面的代码应该插入'Ok',那么如果调试失败,它在哪里呢?它是否正确地创建了字符串googleLinks?如果是,是否将其添加到页眉? <HEAD> <TITLE>
到底是什么不起作用?结果是什么?上面的代码应该插入'Ok',那么如果调试失败,它在哪里呢?它是否正确地创建了字符串googleLinks?如果是,是否将其添加到页眉?
<HEAD>
<TITLE>
ABC
</TITLE>
<link rel=alternate" hreflang="de" href="http://www.NNN.co/de/ABC" />
<link rel=alternate" hreflang="fr" href="http://www.NNN.co/fr/ABC" />
<link rel=alternate" hreflang="x-default" href="http://www.NNN.co/en/ABC" />
</HEAD>
protected void Application_Start(object sender, EventArgs e)
{
_log.Info("Application starting.");
ObjectFactory.Initialized += ObjectFactoryInitialized;
Bootstrapper.Initialized += Bootstrapper_Initialized;
Bootstrapper.Initialized += BootstrapperInitialized;
// NOTE: Telerik | use this event as a later one compared to the Bootstrapper_Initialized
Bootstrapper.Bootstrapped += BootstrapperBootstrapped;
MiniProfiler.Settings.PopupRenderPosition = RenderPosition.Right;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 |
SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
RegisterBundlingContexts();
}
private void Bootstrapper_Initialized(object sender, Telerik.Sitefinity.Data.ExecutedEventArgs e)
{
if (e.CommandName == "Bootstrapped")
{
EventHub.Subscribe<IPagePreRenderCompleteEvent>(this.OnPagePreRenderCompleteEventHandler);
}
}
private void OnPagePreRenderCompleteEventHandler(IPagePreRenderCompleteEvent @event)
{
var page = @event.Page;
//CultureInfo DefaultCulture = CultureInfo.CurrentUICulture;
var siteDefaultCulture = SystemManager.CurrentContext.CurrentSite.DefaultCulture ;
var pageSiteNode = SiteMapBase.GetActualCurrentNode();
var pageManager = PageManager.GetManager();
var pageNode = pageManager.GetPageNode(pageSiteNode.Id);
var publishedTranslations = pageNode.GetPageData().PublishedTranslations;
var googleLinks = new StringBuilder();
foreach (var culture in publishedTranslations)
{
var cultureInfo = new CultureInfo(culture);
string url = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute(pageNode.GetFullUrl(cultureInfo, false, true));
googleLinks.AppendLine($@"<link rel=""alternate"" hreflang=""{culture}"" href=""{url}"" />");
}
googleLinks.Replace($@"hreflang=""{siteDefaultCulture}""", $@"hreflang=""x-default""");
page.Header.Controls.Add(new LiteralControl(googleLinks.ToString()));
}