2012-02-03 11 views
6

umbracoの構造について私はこの質問を持っており、私はどこでも答えを見つけることができません。サブページでUmbracoをデフォルトに設定する方法は?

通常、Umbracoではルートサイトがツリーの最初のノードにデフォルト設定されます。 ので、我々は

  • ホーム
    • ページを持っている場合、1
    • ページ2

デフォルトのページはホームになります(そうwww.mysite.comが家を指します) 。

ただし、www.mysite.comがpage1またはpage2を指すように変更するにはどうすればよいですか? 私はこの構造を持っていますか?

  • ラッパー
    • インデックス
    • ページ1
    • ページ2

と私はwww.mysite.comがwww.mysite.com/indexにまっすぐに行きたいです.aspx

これを実行するルールが見つかりませんでした。書き換え/リダイレクトルールを挿入しようとしましたが、何も変更されませんでした。

Umbracoにリダイレクト

ニック

答えて

4

を助けてください、あなたのサイトのルートノードからリダイレクトしようとしている場合を除き、通常は非常に単純な事件です。

方法1:

ここは最高のそれを説明する:http://our.umbraco.org/wiki/reference/umbraco-best-practices/umbracoredirect

だから、コンテンツピッカーのデータ型で、あなたのルートノードにumbracoInternalRedirectIdプロパティを追加することで可能です。ユーザーをリダイレクトするのではなく、そのページの内容を現在のURLの中に読み込むことに注意してください。そのため、リダイレクト先のページのコンテンツを提供している間は、URLはhttp://www.mysite.comのままです。

方法2:

あなたは本当にそれがhttp://www.mysite.com/index.aspxhttp://www.mysite.com/から変更したい場合。私は通常、次のコードのようなものをルートノードのテンプレートに追加します。

<%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %> 
<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server"> 
</asp:Content> 
<script type="c#" runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.Redirect("http://www.mysite.com/index.aspx");  
    } 
</script> 

したがって、ASP.Netはリダイレクトを担当します。しかし、明らかにノードの名前の変更/あまりの動きは処理されません。

+0

すごいの追加!!!! リダイレクトプロパティを追加しました。 ありがとうございます! – Nick

+0

心配はいりません。 XSLTをエラーなく保存できることを確認してください(使用している場合でも)。 Umbracoのリダイレクトシステムを使用する主な理由は、上記のリンクで説明されているように、ルートノードでは扱いにくいことがあります。 –

+0

私はXSLTの代わりに剃刀を使用しているだけで、サイトは完全にレンダリングされているようです – Nick

0

URL書き換え 設定/ UrlRewritingを使用して、任意のページにリダイレクトできます。コンフィグ

この役割

それが働いた
<add name="role1" 
    virtualUrl="^~/$" 
    destinationUrl="~/home" 
    redirect="Application" 
    redirectMode="Permanent" 
    ignoreCase="true" /> 
関連する問題