您可以使用两个URL来打到主页



拥有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中使用LagandingEmbedding.lways。Sitecore LinkManager生成的链接始终具有语言代码。但是其他URL也将起作用。

您可以使用规范的搜索引擎请参见提示17。

,如果URL与所需的URL匹配,则可以重定向。

或block/block/重定向netwerk/loadBalancer/web服务器或重定向模块或sitecore <httpRequestBegin>管道中的URL。(您发现方便)

一个简单的解决方案是在您的主页上放置代码的平静,类似这样的解决方案:

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);
                }
            }
        }

尝试以下:)

最新更新