Sitecore MVC不会为.aspx页面提供错误

时间:2016-11-10 13:40:52

标签: sitecore sitecore8.1

我们正在使用Sitecore 8.1和MVC格式。 我们刚刚发现如果我们有这样的链接: mywebsite.com/about或mywebsite.com/contact

如果您编写mywebsite.com/about.aspx,则该页面就在那里。这是一个理想的功能吗? 如果我们不想只有没有.aspx的版本,我们怎么能这样做?这可能吗?

编辑:以下是这些网址的生成方式:

<linkManager defaultProvider="sitecore">
<providers>
  <clear />
  <add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="false" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="always" languageLocation="filePath" lowercaseUrls="false" shortenUrls="true" useDisplayName="false" />
</providers>

3 个答案:

答案 0 :(得分:1)

这是默认的Sitecore行为。

即使您添加了.aspx.ashx扩展名,也会返回该页面。

如果没有自定义编码,则无法禁用此功能。

答案 1 :(得分:1)

这是Sitecore的默认行为,但您可以执行的操作是将任何.aspx页面重定向到正确的URL,在sitecore Link Manager配置中保留addAspxExtension="false",并将以下代码添加到主布局:

 string itemUrl = Sitecore.Links.LinkManager.GetItemUrl(Sitecore.Context.Item);
 if (itemUrl != Request.Path)
    {
        Response.Redirect(itemUrl);
    }

答案 2 :(得分:0)

这是sitecore的默认行为。

您可以通过传递生成网址时删除扩展程序 urlOptions.AddAspxExtension为false。

如果我们希望您的网站在sitecore.config文件中更改

<linkManager defaultProvider="sitecore">
  <providers>
    <clear />
    <add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="false" />
  </providers>
</linkManager>

如果您不希望存在.aspx或.ashx网址。您可以覆盖HttpRequestProcessor管道并对那些具有这些扩展名的URL进行永久重定向。