別のサブドメインにメニュー項目を作成するにはどうすればよいですか?


8

Joomla 2.5で次のようなメニュー構造を作成したいと思います。

  • ルート(www.example.com
    • www.example.com/about)について
    • サイトA(a.example.com
    • サイトb(b.example.com

異なるサブドメインでメニュー項目を作成することは可能ですか、またどのように作成しますか?私は以前CMS "typo3"を使っていましたが、これを行うことには何の問題もありませんでしたが、インターネットを長時間検索してもこの問題は解決しませんでした。

編集:a.example.comb.example.com同じJoomlaインストール上にある ことに注意してください。サブドメインを持つ新しい「単一の記事」を作成したいと思います。


1
Joomlaのセットアップについて詳しく教えてください。1つのJoomlaインストールからサブドメインにどのようにサービスを提供していますか?
TryHarder 2014

1
サイトaとサイトbのコンテンツは何ですか?これらは、記事にリンクする単一のメニュー項目ですか、それとも独自のメニューとページでより堅牢ですか?
David Fritsch 2014

昨日は答えられなかったのが残念です。私はこれらのサブドメインを同じJoomlaインストールに提供しますが、joomlaまたはコンポーネントはリダイレクトを行う必要があります(www.example.com/a.hmtlではなくa.example.com)
Marc T.

回答:


4

私は試していませんが、Artio JoomSefはそのような機能を提供すると主張しています。
さまざまなサブドメインで使用するWebサイトのセクションを指定できます。それを確認する価値があるかもしれません。

Artio JoomSEFドキュメント

JoomSEF-サブドメイン構成

より複雑な構成を探している場合、Joomla MultiSites拡張機能を使用すると、1つのインストールからさまざまな構成で多くのjoomlaサイトを実行できます。このJEDセクションへのリンクは、こちらの別の回答に記載されています。


これは、私が望んでいたものとほぼ同じです。Multi Sitesコンポーネントも知っていますが、複数のWebサイトが必要ではありません。
マークT.2014年

2

サブドメインにリンクする必要のあるメニュー項目については、以下にアクセスしてください。

menu-item parameters > menu item type > system links > choose "External URL"

次に、LinkフィールドにサブドメインのURLを入力できます。


すみません、はっきりしていませんでした。上記の編集を行いました。同じjoomlaインストールと同じサイトでなければなりません。
マークT.

1

これをネイティブのJoomlaで実際に行うことはできませんが、これを支援する拡張機能を使用できます。

あなたはJEDでそれらを見つけることができます


1

これに外部コンポーネントを使用したくない場合は、メニューで外部URLを作成し、ファイルをa.example.com使用.htaccessしてサイトの既存のリンクからコンテンツを取得できます。

例えば

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^a.example.com
    RewriteRule ^(.*) http://example.com/$1 [P]
</IfModule>

ユーザーがこのURLにアクセスした場合、ブラウザの実際のURLを変更せずにa.example.com/user/sdコンテンツを取得するとしexample.com/user/sdます。

この方法は、.htaccessファイルの使い方に精通していて、手動で編集する場合にのみ行ってください。これは、少数のURLにまったく新しい拡張機能を使用したくない場合に便利です。


0

私はこれが少し古いこの質問であることを知っていますが、同じことを思っていましたが、サブドメインに基づいて複数のモジュールの位置を作成できる少しの追加コードでテンプレートのindex.phpファイルを変更した場合に私が思いついた解決策はここにあります、次に適切なメニュー項目を関連するサブドメインに割り当てます。

    $dom = explode ( '.', str_replace ( '//', '.', JURI::base () ) ) ;
    $sub = ( in_array ( 'plus', $dom ) ? 'plus' : ( in_array ('group', $dom) ? 'group' : 'home' ) ) ;
    if ($this->countModules('navigation'.$sub )) : ?>
        <nav class="navigation">
            <jdoc:include type="modules" name="navigation<?php echo $sub ?>" style="html5" />
        </nav>
    <?php  endif; ?>

上記の例では、$ subで始まる行が独自のWebサイト用にカスタマイズする必要があります。現在の例では、サブドメインに応じてナビゲーションモジュール用のスペースを作成します。これは、2つのサブドメインと一般的なドメインなので、サブドメインごとに3つのナビゲーション位置(navigationhome navigationplusとnavigationgroup)を作成します。

コードで注意すべきいくつかの点-

サブドメインを見つけるには、関数in_arrayを使用しました。$ dom [1]でswitchステートメントを使用してサブドメインを見つけることもできましたが、wwwが$ dom [1]にあるため、誰かがwww.plus.mysite.co.ukのようなものを入力した場合、これは機能しません...例えば

    switch ( $dom[1] )
    {
        case 'group' : $sub = 'group' ; break ;
        case 'plus' : $sub = 'plus' ; break ;
        default : $sub = 'home' ; break ;
    }

最初の分解では、str_replaceを使用して//をに置き換えます。これは、最初のhttp / httpsがそれ自体の配列で終わるようにするためです($ dom [0]には常にhttp / httpsが含まれます。これは、ロードされたプロトコルに応じて異なるサイトを表示したい場合に使用できます。そこにいなかった場合、誰かがhttp://plus.mysite.co.ukのようなものに入れられた場合、最初の配列にはhttp:// plusが含まれ、in_arrayは一致を返しません。

サブドメインがサイトドメインと同じである場合は、それが?の最後のドメインであることを確認する必要があることに注意してください。:ステートメントチェーンそれ以外の場合、それ自体が他のサブドメインに割り当てられます-たとえば、2つのサブドメインがあり、1つはsite.site.co.uk、もう1つはsite1.site.co.ukと呼ばれる場合、次のステートメントが機能します。

    $sub = ( in_array ( 'site1' ) ? 'site1' : ( in_array ( 'site' ) ? 'site' : 'site' ) ) ;
    //it never reaches the in_array ( 'site' ) if sub domain is site1

しかし、これらのどちらもその状況では適切に機能しません...

    $sub = ( in_array ( 'site' ) ? 'site' : ( in_array ( 'site1' ) ? 'site1' : 'main' ) ) ; 
    // all domains would be referred to as site because XXX.site.co.uk provides a match
    $sub = ( in_array ( 'site1' ) ? 'site1' : ( in_array ( 'site' ) ? 'site' : 'main' ) ) ; 
    // www.site.co.uk would still be site and not main

この方法でこれらを使用することはほとんどありませんが、注目に値します。


-1

はい、そのメニュー構造をJoomlaで作成できます。一般に、メニュー項目は、項目やその他のパラメーターを指定するコンポーネントのビューを指します。

Joomlaをラーニングデモデータと共にインストールすると、ラーニングデモを含む2つの完全に異なるサンプルサイトに気づき、Joomlaに関するすべてを学ぶことができます。


これについて説明できますか?このように使用されているサブドメインを標準のjoomlaセットアップで使用したことはありません。ストックのものをオーバーライドするには、常にSEFプラグインが必要でした。はい、2つの異なるサイトはありますが、URLとしてサブドメインを含むメニューからのものではありません。
ブライアンピート2014年

joomlaサイトのコンテンツは、(サブ)ドメインとは関係ありません。あなたはそれに対処するためにネットワークとウェブサーバーを設定します。
sovainfo 2014年

そうです、しかしあなたの答えは実際には解決策を与えません。ソリューションにはDNSを正しく設定し、外部メニューリンクを使用してユーザーをサブドメイン名に送信することが含まれていると思います。そうしないと、joomlaの通常のページが表示されます(記事にリンクするだけの場合)。それはまったく簡単な設定ではありません。
ブライアンピート2014年

明確な指示はありません。数年前、このようにhikashopを使用して2つのショップをセットアップしたことを思い出してください。詳細を思い出さないでください。おそらく、.htaccessのいくつかを適切なURLにダイレクトする必要があります。あなたの要件に非常に依存します。
sovainfo 2014年

この答えを削除することをお勧めします。それは本当にOPに多くの情報を与えていません。
ブライアンピート2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.