Sitecore MVC 不会为 .aspx 页面给出错误
Sitecore MVC does not give error for .aspx pages
我们正在使用 MVC 格式的 Sitecore 8.1。
我们刚刚发现如果我们有一个 link 像:
我的网站.com/about 或我的网站.com/contact
如果您编写 mywebsite.com/about.aspx,它会像页面一样工作。这是所需的功能吗?
如果我们不想只有没有 .aspx 的版本,我们该怎么做?这可能吗?
编辑: 这是 url 的生成方式:
<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>
这是默认的 Sitecore 行为。
即使您添加 .aspx
或 .ashx
扩展名,它也是 returns 页面。
您不能在没有自定义编码的情况下禁用此功能。
这是 sitecore 的默认行为。
您可以在生成 url 时删除扩展名,方法是传递
urlOptions.AddAspxExtension 为假。
如果我们希望在 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 具有这些扩展的管道进行永久重定向。
这是 Sitecore 默认行为,但您可以做的是将任何 .aspx
页面重定向到正确的 URL,在 sitecore Link 管理器配置中保留 addAspxExtension="false"
,并将以下代码添加到您的主布局中:
string itemUrl = Sitecore.Links.LinkManager.GetItemUrl(Sitecore.Context.Item);
if (itemUrl != Request.Path)
{
Response.Redirect(itemUrl);
}
我们正在使用 MVC 格式的 Sitecore 8.1。 我们刚刚发现如果我们有一个 link 像: 我的网站.com/about 或我的网站.com/contact
如果您编写 mywebsite.com/about.aspx,它会像页面一样工作。这是所需的功能吗? 如果我们不想只有没有 .aspx 的版本,我们该怎么做?这可能吗?
编辑: 这是 url 的生成方式:
<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>
这是默认的 Sitecore 行为。
即使您添加 .aspx
或 .ashx
扩展名,它也是 returns 页面。
您不能在没有自定义编码的情况下禁用此功能。
这是 sitecore 的默认行为。
您可以在生成 url 时删除扩展名,方法是传递 urlOptions.AddAspxExtension 为假。
如果我们希望在 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 具有这些扩展的管道进行永久重定向。
这是 Sitecore 默认行为,但您可以做的是将任何 .aspx
页面重定向到正确的 URL,在 sitecore Link 管理器配置中保留 addAspxExtension="false"
,并将以下代码添加到您的主布局中:
string itemUrl = Sitecore.Links.LinkManager.GetItemUrl(Sitecore.Context.Item);
if (itemUrl != Request.Path)
{
Response.Redirect(itemUrl);
}