2016-11-10 40 views
-3

我们使用Sitecore 8.1和MVC格式。 我们刚刚发现,如果我们有像一个链接: mywebsite.com/about或mywebsite.com/contactSitecore MVC不会给.aspx页面提供错误

如果你写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> 

回答

1

这是Sitecore的默认行为,但你可以做什么,是任何.aspx页面重定向到正确的URL,保持addAspxExtension="false"在Sitecore的链路管理器配置,下面的代码添加到您的主要布局:

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

这是默认Sitecore的行为。

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

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

0

这是sitecore的默认行为。

您可以通过传递 urlOptions.AddAspxExtension作为false来删除扩展,同时生成url。

如果我们要跨越的sitecore.config文件

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

您的网站的变化。如果你不想要的.aspx或.ashx的URL的要存在。你可以重写HttpRequestProcessor管道,并对那些具有这些扩展名的url进行永久重定向。

+0

我们有这个作为配置,它没有任何影响 – Radu

+0

@Radu你可以发布你如何生成网址? –

+0

我已经使用链接管理器代码 – Radu