2016-11-10 18 views
-3

Sitecore 8.1をMVC形式で使用しています。 私達はちょうど私たちのようなリンクを持っている場合ことを発見: mywebsite.com/aboutまたはmywebsite.com/contactSitecore MVCでは.aspxページにエラーがありません

を使用すると、ページがあったとして、それが動作するmywebsite.com/about.aspx書く場合。これは望ましい機能ですか? .aspxなしのバージョンのみを使用したくない場合は、どうすればできますか?これは可能ですか?

EDIT:これは、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> 

答えて

1

これは、サイトコアのデフォルトの動作ですが、あなたは何ができるか、正しいURLに任意の.aspxページをリダイレクトするサイトコアリンクマネージャの設定でaddAspxExtension="false"を維持し、あなたのメインのレイアウトに次のコードを追加します:

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

これがデフォルトサイトコアの動作です。

.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あなたはURLを生成する方法を投稿できますか? –

+0

私はリンクマネージャコード – Radu

関連する問題