Wie kann ich einen Menüpunkt in einer anderen Subdomain erstellen?

8

Ich möchte eine Menüstruktur wie diese in Joomla 2.5 erstellen:

  • Root ( www.example.com)
    • Über ( www.example.com/about)
    • Seite a ( a.example.com)
    • Seite b ( b.example.com)

Ist es möglich, Menüelemente mit verschiedenen Subdomains zu erstellen und wie erstelle ich sie? Ich habe zuvor mit dem CMS "typo3" gearbeitet und es gab kein Problem dabei, aber eine lange Suche im Internet hat mir bei diesem Problem nicht geholfen.

BEARBEITEN: Beachten Sie, dass a.example.comund b.example.comsich in derselben Joomla-Installation befinden, daher möchte ich einen neuen "Einzelartikel" mit einer Subdomain erstellen.

Marc T.
quelle
1
Bitte geben Sie uns weitere Informationen zu Ihrem Joomla-Setup. Wie bedienen Sie die Subdomains einer Joomla-Installation?
TryHarder
1
Was ist der Inhalt für Site a und Site b? Sind dies nur einzelne Menüelemente, die auf einen Artikel verweisen, oder sind sie mit ihrem eigenen Menü und ihren eigenen Seiten robuster?
David Fritsch
Es tut mir leid, dass ich gestern keine Zeit hatte zu antworten. Ich werde diese Subdomains für dieselbe Joomla-Installation bereitstellen und dann muss Joomla oder eine Komponente die Umleitung durchführen (a.example.com und nicht www.example.com/a.hmtl)
Marc T.

Antworten:

4

Ich habe es nicht ausprobiert, aber Artio JoomSef behauptet, solche Funktionen bereitzustellen.
Sie können Abschnitte Ihrer Website angeben, die für verschiedene Subdomains verwendet werden sollen. Es könnte sich lohnen, dies zu überprüfen.

Artio JoomSEF Dokumentation

JoomSEF - Konfiguration der Subdomains

Wenn Sie nach komplexeren Konfigurationen suchen, können Sie mit den Joomla MultiSites-Erweiterungen viele Joomla-Sites aus einer Installation mit verschiedenen Konfigurationen ausführen. Ein Link zu diesem JED-Abschnitt finden Sie in einer anderen Antwort hier.

FFrewin
quelle
Dies ist auf einen kurzen Blick so ziemlich das, was ich wollte. Ich kenne die Komponente Multi Sites auch, möchte aber nicht mehrere Websites.
Marc T.
2

Die Menüelemente, die Sie mit Ihren Subdomains verknüpfen müssen, finden Sie unter:

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

Dann können Sie in das LinkFeld die URL Ihrer Subdomains eingeben.

Web-Tiki
quelle
Entschuldigung, ich war nicht klar genug. Ich habe oben eine Bearbeitung vorgenommen. Es sollte dieselbe Joomla-Installation UND dieselbe Site sein.
Marc T.
1

Mit nativem Joomla können Sie dies nicht wirklich tun, aber Sie können eine Erweiterung verwenden, die Ihnen dabei helfen soll.

Sie finden sie bei JED

Harald Leithner
quelle
1

Wenn Sie hierfür keine externe Komponente verwenden möchten, können Sie in Ihrem Menü eine externe URL erstellen, die auf a.example.comIhre .htaccessDatei verweist, und Inhalte verwenden , um Inhalte über den vorhandenen Link Ihrer Website abzurufen.

Zum Beispiel

<IfModule mod_rewrite.c>
    RewriteEngine on

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

Angenommen, wenn Ihr Benutzer diese URL besucht a.example.com/user/sd, wird der Inhalt example.com/user/sdohne Änderung der tatsächlichen URL im Browser angezeigt.

Verwenden Sie diese Methode nur, wenn Sie mit der .htaccessVerwendung von Dateien vertraut sind und mit der manuellen Bearbeitung einverstanden sind. Dies ist nützlich, wenn Sie nicht für nur wenige URLs die gesamte neue Erweiterung verwenden möchten.

Saurin Dashadia
quelle
0

Ich weiß, dass diese Frage etwas alt ist, aber ich habe mich das Gleiche gefragt. Hier ist die Lösung, die ich gefunden habe, wenn Sie die Datei index.php der Vorlagen mit etwas zusätzlichem Code ändern und mehrere Modulpositionen basierend auf der Subdomain erstellen können und weisen Sie dann der entsprechenden Subdomain den richtigen Menüpunkt zu.

    $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; ?>

Im obigen Beispiel ist die Zeile, die mit $ sub beginnt, das, was Sie für Ihre eigene Website anpassen müssen. Derzeit wird im Beispiel je nach Subdomain ein Platz für ein Navigationsmodul erstellt. Dies wurde für eine Site mit zwei Subdomains und a erstellt allgemeine Domain und so werden drei Navigationspositionen für jede Subdomain erstellt - Navigationshausnavigationsplus und Navigationsgruppe.

Ein paar Dinge, die Sie mit dem Code beachten sollten -

Um die Subdomain zu finden, habe ich die Funktion in_array verwendet. Ich hätte eine switch-Anweisung für $ dom [1] verwenden können, um die Subdomain zu finden, aber dies würde nicht funktionieren, wenn jemand etwas wie www.plus.mysite.co.uk wie www in $ dom [1] eingeben würde ... z.B

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

Die anfängliche Explosion verwendet str_replace, um // durch zu ersetzen. Dies ist so, dass das anfängliche http / https in einem eigenen Array landet ($ dom [0] enthält immer das http / https, das vermutlich weiter verwendet werden könnte, wenn Sie je nach geladenem Protokoll unterschiedliche Sites anzeigen möchten, falls dies der Fall ist Wäre da nicht, würde jemand so etwas wie http://plus.mysite.co.uk einfügen, dann würde das erste Array http: // plus enthalten und in_array würde keine Übereinstimmung zurückgeben.

Denken Sie daran, dass Sie sicherstellen müssen, dass die Subdomain die letzte in der? Ist, wenn sie mit der Site-Domain identisch ist. : Anweisungskette, andernfalls wird es sich anderen Subdomänen zuweisen - z. B. wenn Sie zwei Unterdomänen hätten, eine mit dem Namen site.site.co.uk und die andere mit dem Namen site1.site.co.uk, würde die folgende Anweisung funktionieren

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

aber keines davon würde in dieser Situation richtig funktionieren ...

    $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

Es ist unwahrscheinlich, dass Sie diese auf diese Weise verwenden, aber es ist erwähnenswert.

TheKLF99
quelle
-1

Ja, Sie können diese Menüstruktur in Joomla erstellen. Im Allgemeinen verweisen die Menüelemente auf eine Ansicht in einer Komponente, in der das Element und andere Parameter angegeben sind.

Wenn Sie Joomla mit den Lerndemodaten installieren, werden Sie zwei völlig unterschiedliche Beispielseiten bemerken, einschließlich der Lerndemo, die Ihnen alles über Joomla beibringen.

Sovainfo
quelle
Können Sie das erläutern? Ich habe noch nie eine Subdomain gesehen, die so mit einem Standard-Joomla-Setup verwendet wurde. Es war immer ein SEF-Plugin erforderlich, um das Standardmaterial zu überschreiben. Zwei unterschiedlich aussehende Sites ja, aber nicht aus dem Menü mit Subdomains als URLs.
Brian Peat
Der Inhalt einer Joomla-Site bezieht sich nicht auf (Unter-) Domains. Sie konfigurieren Ihr Netzwerk und Ihren Webserver dafür.
Sovainfo
Richtig, aber Ihre Antwort gibt eigentlich keine Lösung. Ich vermute, dass die Lösung darin besteht, DNS korrekt einzurichten und dann den Benutzer über den externen Menülink an den Namen der Subdomain zu senden. Andernfalls würden Sie nur auf einer normalen Seite in Joomla landen (wenn Sie einfach auf einen Artikel verlinken). Es ist überhaupt kein einfaches Setup.
Brian Peat
Ich habe keine klaren Anweisungen. Erinnern Sie sich daran, wie Sie vor Jahren auf diese Weise zwei Geschäfte mit Hikashop eingerichtet haben. Erinnere dich nicht an die Details. Sie möchten wahrscheinlich, dass einige Dinge in .htaccess auf entsprechende URLs verweisen. Sehr abhängig von Ihren Anforderungen.
Sovainfo
Ich würde vorschlagen, diese Antwort dann zu entfernen. Es gibt dem OP wirklich nicht viele Informationen.
Brian Peat