ARM läuft nicht auf dem zweiten Mandanten

Gesperrt
Vadik50
Beiträge: 25
Registriert: Mo 31. Mai 2010, 18:14
Kontaktdaten:

ARM läuft nicht auf dem zweiten Mandanten

Beitrag von Vadik50 » Di 8. Jan 2013, 12:45

(Contenido 4.8.14, ARM 0.5.4)
Hallo habe folgendes Problem

ich habe zwei Mandaten: 1. http://www.hostname.de und 2. http://www.hostname.de/mandant2

Beide verwalte ich über ein Backend, beide Mandanten lassen sich wunderbar verwalten, nur der ARM, der funktioniert nicht richtig beim 2en Mandant!

folgende Konfiguration liegt vor:
1. Mandant
path: /wwwroot/cms
url http://www.hostname.de/cms
ARM path to htaccess: /
(RewriteBase /cms)

2. Mandant
path: /wwwroot/mandant2
url: http://www.hostname.de/mandant2
ARM path to htaccess: /mandant2/
(RewriteBase /) Die .htaccess_simple.txt aus Download Archive übernommen und nur die Base angepasst.

beide .htaccess Dateien sind wie im ARM Path angegeben, abgelegt.

Wie gesagt, das Problem taucht nur bei Mandant 2 auf. wenn ich die Seite aufrufe, wird mir folgende Fehlermeldung ausgeben:
Not Found

The requested URL /front_content.php was not found on this server.
Die URL wird, zumindest auf der Startseite korrekt auf den Artikel Alias geändert.
http://www.hostname.de/mandant2/index.html

Die .htaccess Datei wird ausgewertet, ein Test:

Code: Alles auswählen

RewriteRule ^ http://www.contenido.de
leitet die Anfrage auf die Seite.

Weiß jemand wie man das Problem beheben kann?

Danke!
Gruß
Vadik50

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: ARM läuft nicht auf dem zweiten Mandanten

Beitrag von xmurrix » Di 8. Jan 2013, 13:57

Hallo Vadik50,

das wird so wahrscheinlich nicht funktionieren.

Das Beste ist, du machst folgendes:

Mandant 1:
- Domain oder Subdomain mit dem Mandantenverzeichnis (/wwwroot/cms) als Documentroot einrichten
- .htaccess in das Mandantenverzeichnis (/wwwroot/cms) kopieren und Rewrite Regeln anpassen
-- RewriteBase /
- ARM path to htaccess: /
- Web-Pfad des Mandanten anpassen
- Cache leeren


Mandant 2:
- Domain oder Subdomain mit dem Mandantenverzeichnis (/wwwroot/mandant2) als Documentroot einrichten
- .htaccess in das Mandantenverzeichnis (/wwwroot/mandant2) kopieren und Rewrite Regeln anpassen
-- RewriteBase /
- ARM path to htaccess: /
- Web-Pfad des Mandanten anpassen
- Cache leeren

Backend:
- Domain oder Subdomain für das Backend (/wwwroot/contenido) einrichten und die Konfiguration $cfg['path']['contenido_fullhtml'] in der Datei contenido/includes/config.php anpassen

Ich weiß, dass es auch andere Möglichkeiten gibt, eine CONTENIDO-Installatiom mit dem AMR-Plugin und mehreren Mandanten einzurichten. Mir ist am Besten die oben beschriebene Lösung bekannt.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Vadik50
Beiträge: 25
Registriert: Mo 31. Mai 2010, 18:14
Kontaktdaten:

Re: ARM läuft nicht auf dem zweiten Mandanten

Beitrag von Vadik50 » Di 8. Jan 2013, 15:02

Ich verstehe nicht ganz
Mandant 1:
- Domain oder Subdomain mit dem Mandantenverzeichnis (/wwwroot/cms) als Documentroot einrichten
...
soll das heißen, in der Apache conf 3 weitere Virtuelle Hosts einrichten (Mandant 1, 2 und Contenido Backend)?
Gruß
Vadik50

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: ARM läuft nicht auf dem zweiten Mandanten

Beitrag von xmurrix » Di 8. Jan 2013, 15:48

...soll das heißen, in der Apache conf 3 weitere Virtuelle Hosts einrichten (Mandant 1, 2 und Contenido Backend)?...
Ja, pro Mandant eine eigene Domain/Subdomain einrichten. Idealerweise sollte jeder Mandant seine eigene Domain bekommen, und das Backend eine Subdomain, aber man kann auch folgendes machen:
- mandant1.mydomain.de -> Documentroot "/wwwroot/cms"
- mandant2.mydomain.de -> Documentroot "/wwwroot/mandant2"
- contenido.mydomain.de -> Documentroot "/wwwroot/contenido"
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Vadik50
Beiträge: 25
Registriert: Mo 31. Mai 2010, 18:14
Kontaktdaten:

Re: ARM läuft nicht auf dem zweiten Mandanten

Beitrag von Vadik50 » Do 10. Jan 2013, 10:18

Ok ich habe es jetzt so umgesetzt, 2 virtuelle hosts mit jeweils einem Unterverzeichnis als webroot. Die beiden Mandanten lassen sich jetzt aufrufen.
Jetzt habe ich noch ein anderes Problem, ich benutze beim Mandant 2 einen alternativen Modul für die Navigation: vpNavigation 0.2 von Ingo van Peeren. Die Links werden umgeschrieben, allerdings zeigt jeder Link auf hostname.de/index.html
Ohne ARM funktioniert die Navigation wunderbar, mit tritt das genannte Problem auf.

Ich habe im Forum bezüglich diesen Modul was gefunden http://forum.contenido.org/viewtopic.ph ... &start=885
Das kommt darauf an, wie du das AMR Plugin verwendest.
Ist die Einstellung zum Generieren der URLs bei der Ausgabe des HTML Codes der Seite gesetzt, sind keine Anpassungen an Modulen/Plugins nötig. Sollen die URLs aber direkt in den Modulen/Plugins erstellt werden, musst du an den entsprechenden Stellen die Ausgabe der URLs anpassen.

Code: Alles auswählen

##########  mit idcat  ##########
// front_content url
$url = 'front_content.php?idcat=12';

// clean url
$params = array('idcat' => 12, 'lang' => $lang);
$url = Contenido_Url::getInstance()->build($params));


##########  mit idart  ##########
// front_content url
$url = 'front_content.php?idart=3';

// clean url
$params = array('idart' => 3, 'lang' => $lang);
$url = Contenido_Url::getInstance()->build($params));
leider weiß ich nicht wo ich das ändern muss...
Gruß
Vadik50

Vadik50
Beiträge: 25
Registriert: Mo 31. Mai 2010, 18:14
Kontaktdaten:

Re: ARM läuft nicht auf dem zweiten Mandanten

Beitrag von Vadik50 » Do 10. Jan 2013, 11:27

Inzwischen konnte ich noch was feststellen, im Module vpNavigation (ich habe es noch etwas modfiziert) werden nicht alle für ARM benötigte Parameter (GET Variablen) übergeben. Durch hinzufügen von idart (?idcat=XX&idart=XX) werden die URL jetzt richtig umgeschrieben, also nicht mehr index.html sondern nach den Alias der jeweiligen Seite. z.B Bei Contact contact.html. Leider funktioniert die Weiterleitung nicht, ich lande immer auf der Startseite, index.html.

Nun die Frage welche Parameter braucht ARM um richtig zu funktionieren, fehlt ihm noch eine Variable oder ist es komplizierter?

Ich habe folgendes in .htaccess ausprobiert:

Code: Alles auswählen

RewriteRule ^contact.html /front_content.php?idcat=54 [QSA] #(54 ist die idcat von contact)
Mit dem Eintrag werde ich beim Aufruf von Contact auf die Contact Seite weitergeleitet! Es scheint das der ARM den Weg von umgeschriebene URL => idcat nicht mehr findet.
Gruß
Vadik50

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: ARM läuft nicht auf dem zweiten Mandanten

Beitrag von xmurrix » Do 10. Jan 2013, 16:46

Wenn du in der Einstellung des AMR-Plugins die Option zum Erstellen der URLs bei der Ausgabe des Codes setzt, dann sollte das Plugin die URLs von selber umschreiben, und du musst keine Änderungen in Modulen machen.

Damit eine URL korrekt umschrieben wird, müssen folgende Punkte berücksichtigt werden:
  • Jede URL braucht eine idcat oder eine idart oder eine idcatart und den lang Parameter, also z. B. front_content.php?idart=123&lang=1, front_content.php?idcat=123&lang=1 oder front_content.php?idcatart=123&lang=1. Das ist nicht Pluginspezifisch, sondern die Vorgabe des URL-Builders, der am Ende das Plugin verwendet.
  • Artikel sollten online sein
  • Bei Kategorieids sollte die Kategorie online sein und einen Startartikel haben
  • Kategorien sollten alle Aliase und Einträge zu "urlpath" in der Tabelle con_cat_art (oder con_cat_lang?) haben, schau dir die Aliase zu allen Kategorien und die Spalte "urlpath" an. In Plugineinstellungen kannst du die Aliase neu generieren lassen (Hinweis: Es werden alle neu generiert, auch manell angepasste Aliase)
Wenn ein Link zu contact.html nicht funktionert, schau dir die Artikel "contact" an. In welcher Kategorie ist der Artikel und warum hat die URL keinen Kategorienamen?

Das AMR-Plugin bildet beim Generieren der URLs die Kategoriestruktur ab, Hast du eine Artikel "bar" in der Kategorie "foo", wird daraus eine URL wie "foo/bar.html". Willst du das anders haben, dann musst du das Plugin deinen Bedürfnissen anpassen. Mit dem Plugin kann man nicht jede Anforderung umsetzen.

In der Konfiguration des AMR-Plugins kannst du auch Regeln zum Routen von eingehenden Requests auf andere Artikel/Kategorien definieren, musst das nicht in der .htaccess machen. Schau dir die Konfiguration-Seite des Plugins an, dort ist das Routing mit einem Beispiel beschrieben. In deinem Fall sollte folgendes helfen:

Code: Alles auswählen

/contact.html.html>>>front_content.php?idcat=54
oder

Code: Alles auswählen

contact.html.html>>>front_content.php?idcat=54
Ich weiß nicht auswendig, welches davon geht, einfach ausprobieren.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Vadik50
Beiträge: 25
Registriert: Mo 31. Mai 2010, 18:14
Kontaktdaten:

Re: ARM läuft nicht auf dem zweiten Mandanten

Beitrag von Vadik50 » Fr 11. Jan 2013, 13:06

Gelöst!! Super Beschreibung, Danke!

Erst einmal:
Contact hat eine Kategorie, Alias, idart und alles war online. Ich habe Contact nur als Beispiel genommen, alle Seiten gingen nicht. Das Problem war was anderes.

Die Lösung des Problems waren die "urlpath"s, in der Tabelle "con_cat_lang", es waren keine Einträge für diesen Mandanten enthalten. Ich kann mir nicht erklären, wie es dazu kam.
Ich wollte die Aliase nicht neu generieren, weil es eben alle Mandanten betrifft und die anderen Mandanten/Webseiten bereits seit Jahren online sind, daher habe ich die Pfade manuell in MySQL nachgetragen und es klappt!!

Interessant wäre es zu wiesen wie es dazu kam, aber das ist nebensächlich. Ein Test hat ergeben, das neue Kategorien und Artikeln korrekt mit urlpath angelegt und diese auch mit ARM erreicht werden.

Abschließend möchte ich sagen, das nach 3 Tagen durchstöbern der unterschiedlichen Foren ist es doch einer große Erleichterung ist, zu wissen das sich jemand mit Contenido gut auskennt. In diesem Sinne Danke!
Gruß
Vadik50

JuePoe
Beiträge: 92
Registriert: Mi 27. Jul 2005, 13:02
Wohnort: Hamburg + Wendland
Kontaktdaten:

Re: ARM läuft nicht auf dem zweiten Mandanten

Beitrag von JuePoe » Di 3. Dez 2013, 14:39

Ganz herzlichen Dank!!
Deine Recherchen und die Veröffentlichung hier haben mir sehr viel Sucherei erspart.

J. Pötschik
dialog im netz Hamburg + Wendland

Gesperrt