我试图在我的网页上使用Canonical url&#39。我正在做的是: 我想要页面的完整网址,我可以通过以下代码生成:
@{
var canonicalUrl= String.Empty;
if(umbraco.library.RequestServerVariables("HTTP_HOST").ToLower().StartsWith("www")) {
canonicalUrl = string.Concat("http://", umbraco.library.RequestServerVariables("HTTP_HOST"), CurrentPage.GetPropertyValue("umbracoUrlAlias"));
} else {
canonicalUrl = string.Concat("http://www.", umbraco.library.RequestServerVariables("HTTP_HOST"), CurrentPage.GetPropertyValue("umbracoUrlAlias"));
}
<link rel="canonical" href="@canonicalUrl" />
}
我不确定,这是否是预期的方法。或者,如果有更好的方法可以做。
答案 0 :(得分:1)
以下是如何在Umbraco 7.1.x上使用Razor设置Canonical URL的指南。
如果你想要“www。”在URL中,使用:
@using umbraco
@using System
@{var canonicalUrl= String.Empty;}
@if(umbraco.library.RequestServerVariables ("HTTP_HOST").ToLower().StartsWith("www")) {
canonicalUrl = string.Concat("http://", umbraco.library.RequestServerVariables("HTTP_HOST"), Model.Url);
} else {
canonicalUrl = string.Concat("http://www.", umbraco.library.RequestServerVariables("HTTP_HOST"), Model.Url);
}
<link rel="canonical" href="@canonicalUrl" />
如果你不想要“www。”在URL前面,然后使用它:
@using umbraco
@using System
@* empty out the string *@
@{var canonicalUrl= String.Empty;}
@* check if the requested URL starts with www. *@
@if(umbraco.library.RequestServerVariables("HTTP_HOST").ToLower().StartsWith("www")) {
@* adds http:// to the beginning *@
canonicalUrl = string.Concat("http://", umbraco.library.RequestServerVariables ("HTTP_HOST"), Model.Url);
@* strips out the www. from the URL *@
canonicalUrl = umbraco.library.Replace(canonicalUrl, "www.", "");
} else {
@* if they did not use the www prefix, we still have to add http:// to the URL *@
canonicalUrl = string.Concat("http://", umbraco.library.RequestServerVariables("HTTP_HOST"), Model.Url);
}
<!-- output the canonical URL -->
<link rel="canonical" href="@canonicalUrl" />
Source - Canonical URLs in Umbraco CMS version 7.1.x with Razor
答案 1 :(得分:0)
这对我们以前有用......看起来就像你已经在使用的那样。
在Umbraco上使用Razor语法(而不是XSLT)......
@using umbraco
@using System
@{ var canonicalUrl= String.Empty; }
@if(umbraco.library.RequestServerVariables("HTTP_HOST").ToLower().StartsWith("www")) {
canonicalUrl = string.Concat("http://", umbraco.library.RequestServerVariables("HTTP_HOST"), Model.Url);
} else {
canonicalUrl = string.Concat("http://www.", umbraco.library.RequestServerVariables("HTTP_HOST"), Model.Url); }
<link rel="canonical" href="@canonicalUrl" />