Plugin Advanced Mod Rewrite für Contenido 4.8.x

birke
Beiträge: 92
Registriert: Mo 2. Feb 2009, 16:58
Kontaktdaten:

Frage zur Migration mit AMR

Beitrag von birke » Do 12. Mär 2009, 10:10

Wie funktioniert denn eigentlich die Migration mit einem bestehenden AMR am Besten?

In der Regel installiert man ja ein frisches Contenido mit dem bestehenden Mandanten-Ordner. Bisher habe ich ein normales Contenido mit der Option Migration und dem lokalen Mandantenordner installiert, danach das AMR installiert und aktiviert. Das funktioniert auch soweit.

Kann ich in das zu installierende Contenido Setup bereits schon vor der Installation alle nötigen Dateien, wie z.Bsp. die config_chains.php, das Plugin etc. packen oder gibt das Ärger bei der Installation?

Und wie verhält es sich, wenn ich lokal weiterarbeite und die Installation im Web aktualisieren möchte? Reicht es hier die DB und den Mandantenordern zu aktualisieren oder empfiehlt sich dann eine Migration?

Grüße, Birke

MarcoW
Beiträge: 9
Registriert: Mi 11. Feb 2009, 09:35
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von MarcoW » Do 12. Mär 2009, 14:42

Hallöchen,

ich hätte da auch noch eine Frage zur richtigen Konfiguration der .htaccess.

Also zunächst mal meine Verzeichniskonfiguration:

DocumentRoot des Apache ist normal htdocs -> /

die Contenidoinstallation liegt in /contenido
das Backend ist somit erreichbar über /contenido/contenido
der Mandant liegt also in /contenido/mandant

Die .htaccess liegt in /contenido

Bisher hab ich in der .htaccess als RewriteBase stehen: /contendio/mandant/
Ich muss momentan im Browser eingeben: http://domain/contenido und dann wird mir mein Mandant schön angezeigt.

Nun hätte ich es gerne so, das ich nur http://domain eingebe und ich komem auf den Mandanten.
Ist das möglich ohne die Verzeichnisstruktur zu ändern? Und wenn ja, was muss ich wo eintragen?

Gruß

der Marco

birke
Beiträge: 92
Registriert: Mo 2. Feb 2009, 16:58
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von birke » Do 12. Mär 2009, 20:28

Die .htaccess müsste ins root (htdocs) und die rewrite Base wäre dann /contenido/mandant (Ohne Slash am Ende).

Änderungen müssen nur an der htaccess und unter Content > Advanced Mod Rewrite > Pfad vorgenommen werden. Die Verzeichnisstruktur sowie die Kategorien spielen hierbei keine Rolle.

Dein Pfad für Content > AMR > Pfad wäre hier /contenido/ (Jetzt aber mit Slash am Ende)

Nun müsste beim Aufruf des root direkt die Startseite erscheinen.

Schau mal hier, das ist die selbe Struktur wie bei Dir.

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

Re: Frage zur Migration mit AMR

Beitrag von xmurrix » Do 12. Mär 2009, 22:23

Hallo birke,
birke hat geschrieben:...Kann ich in das zu installierende Contenido Setup bereits schon vor der Installation alle nötigen Dateien, wie z.Bsp. die config_chains.php, das Plugin etc. packen oder gibt das Ärger bei der Installation?...
normalerweise ist es kein Problem, eine bestehende lokale Installation inkl. installiertem AMR-Plugin per auf den Server zu übertragen und das Setup mit der Option "Migration" durchzuführen.
Falls du die restriktivere Variante der .htaccess verwendest, musst du sicherstellen, dass Requests auf das setup-Verzeichnis vom Apache mod rewrite Modul nicht umschrieben werden, das geht mit der Regel:

Code: Alles auswählen

# falls das setup-Verzeichnis im documentroot liegt
RewriteRule ^setup/.*$ - [L]
birke hat geschrieben:...Und wie verhält es sich, wenn ich lokal weiterarbeite und die Installation im Web aktualisieren möchte? Reicht es hier die DB und den Mandantenordern zu aktualisieren oder empfiehlt sich dann eine Migration?...
Man kann eine lokale Installation auch ohne Migration mit dem Sever abgleichen. Anzupassen sind meist zwei Bereiche. Zum Einen die Pfadangaben in der contenido/includes/config.php und zum Anderen den Server-Pfad und die Web-Adresse des Mandanten (entweder unter Madateneinatellungen oder in der DB in der Tabelle con_clients). Das Zweitere ist nur dann nötig, wenn du auf dem Server einen DB-Dump aus der lokalen Installation einspielst.

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.

walter999
Beiträge: 161
Registriert: Di 24. Mai 2005, 11:23
Wohnort: Rain/Dürnhart
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von walter999 » Fr 13. Mär 2009, 06:21

Hallo xmurrix,

der fix hat seltsamerweise bei einer 4.8.9er Installation, bei der ich den selben Fehler hatte, geholfen. Bei der 4.8.10er nicht!
Der effekt ist immer noch der Selbe: Aufruf [HAUPTDOMAIN]/cms/front_content.php -> Fehlerseite!

Auch bei deaktiviertem "Verhindern von duplicated content" keine Änderung.

Noch jemand Ideen? Sollte sich die Lösung jemand zutrauen bin ich durchaus auch bereit den Aufwand zu bezahlen. Bitte vorher abschätzen wie lange es dauert.

Viele Grüße
Walter



Hallo walter999,

walter999 hat geschrieben:...Wenn ich [HAUPTDOMAIN]/cms/front_content.php aufrufe wird auf die Fehlerseite geleitet. Die .htaccess-Datei sollte doch mit

Code: Alles auswählen
RewriteRule ^cms/front_content.php.*$ - [L]


die front_content.php vom rewriting ausnehmen.


Diese Regel sorgt dafür dass der Request auf cms/front_content.php vom Apache mod rewrite Modul nicht verarbeietet wird, sie wird sozusagen durchgelassen. Was dann passiert, also die Weiterleitung zur Fehlerseite, könnte mehrere Gründe haben. Du schreibst, dass du Contenido 4.8.10 verwendest, in der Version gibt es ein Paar kleinere Probleme, die bereffen auch interne Weiterleitungen. Dazu gib es auch einen Fix, siehe viewtopic.php?f=62&t=23108.

Dann kann der Grund für die Weiterleitung auf die Fehlerseite auch die aktivierte Option zum Verhindern von Duplicated Content sein. Dessen Aufgabe ist es, nur URLs zuzulassen, die den AMR-Einstellungen entsprechen.

walter999 hat geschrieben:...Z.B. bekommen ich da natürlich auch Fehlerseiten wenn nach erfolgreichem Login als Frontend-User auf die "Logges-In-Seite" weitergeleitet wird....


Ich vermute, dass der Redirectfix bei dir fehlt (wie oben beschrieben)

walter999 hat geschrieben:...Bei all meinen anderen Projekten ist trotz aktiviertem Rewriting ein Aufruf der front_content.php möglich....


Ist die Option zum Verhindern von Duplicated Content aktiviert?

Gruß
xmurrix
https://www.lenk.gmbh
Seit über 15 Jahren Erfahrung mit contenido
Umgesetzte Projekte mit contenido: über 300
Größtes Projekt: >2500 Einzelseiten

MarcoW
Beiträge: 9
Registriert: Mi 11. Feb 2009, 09:35
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von MarcoW » Fr 13. Mär 2009, 08:38

birke hat geschrieben:Die .htaccess müsste ins root (htdocs) und die rewrite Base wäre dann /contenido/mandant (Ohne Slash am Ende).

Änderungen müssen nur an der htaccess und unter Content > Advanced Mod Rewrite > Pfad vorgenommen werden. Die Verzeichnisstruktur sowie die Kategorien spielen hierbei keine Rolle.

Dein Pfad für Content > AMR > Pfad wäre hier /contenido/ (Jetzt aber mit Slash am Ende)

Nun müsste beim Aufruf des root direkt die Startseite erscheinen.

Schau mal hier, das ist die selbe Struktur wie bei Dir.
Ich danke dir birke.
Mit diesen Einstellungen funktioniert es wie gewünscht.

Gruß

der Marco

birke
Beiträge: 92
Registriert: Mo 2. Feb 2009, 16:58
Kontaktdaten:

Problem mit der Fehlerseite

Beitrag von birke » Fr 13. Mär 2009, 15:03

@ MarcoW: Freut mich dass es funktioniert. :)

Dafür habe ich ein kleines Problem mit dem Aufruf der Fehlerseite. Anstatt die Fehlerseite anzuzeigen bei der Eingabe eines fehlerhaften URL wird mir nur folgendes auf einer leeren weißen Seite angezeigt:

Code: Alles auswählen

http://localhost/?error=1
In den AMR Einstellungen habe ich die Umleitung auf die Fehlerseite ein Häkchen gesetzt und in den Mandanteneinstellungen sind idcat / idart hinterlegt. War da nicht was mit dem AMR und den Fehlerseiten?

Grüße, Birke

walter999
Beiträge: 161
Registriert: Di 24. Mai 2005, 11:23
Wohnort: Rain/Dürnhart
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von walter999 » Fr 13. Mär 2009, 16:59

Tja, oft kanns so einfach sein.
Der Bug der auf der Startseite genannt wurde wars:
Version 0.5.0rc - 0.5.2:
1. URLs mit front_content.php?idcat=123 werden vom Plugin falsch verarbeitet, was dazu führt, dass der Request auf der Startseite endet, egal welche Kategorieid angegeben wurde. Das lässt sich beheben, in dem in der contenido/plugins/mod_rewrite/classes/class.modrewritecontroller.php am Anfang der Funktion execute() folgendes eingefügt wird:...
Ich dachte das wäre bei meinem Modul, das ich benutzt habe, schon gefixt gewesen.

Ich danke allen ganz herzlich die mir helfen wollten!!!

Besonderer Dank gilt xmurrix!

Viele Grüße
Walter
https://www.lenk.gmbh
Seit über 15 Jahren Erfahrung mit contenido
Umgesetzte Projekte mit contenido: über 300
Größtes Projekt: >2500 Einzelseiten

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

Re: Problem mit der Fehlerseite

Beitrag von xmurrix » Fr 13. Mär 2009, 21:57

birke hat geschrieben:...
Dafür habe ich ein kleines Problem mit dem Aufruf der Fehlerseite. Anstatt die Fehlerseite anzuzeigen bei der Eingabe eines fehlerhaften URL wird mir nur folgendes auf einer leeren weißen Seite angezeigt:

Code: Alles auswählen

http://localhost/?error=1
...
Das ist ein vermutlich die Debugausgabe der Weiterleitung des Plugins. Öffne die Datei "contenido/plugins/mod_rewrite/includes/functions.mod_rewrite.php" und ändere die Zeile 787 (am Anfang der Funktion mr_header) von

Code: Alles auswählen

#    header($header);return;
in

Code: Alles auswählen

    header($header);return;
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.

Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von Dinkel » Sa 14. Mär 2009, 01:40

xmurrix hat geschrieben:Hallo Dinkel,
Dinkel hat geschrieben:Also ich konnte noch etwas ausmachen, bei dem ich die Aliase zurücksetzten muss...
bei mit klappt das nicht, d. h. wenn ich die gleichen Schritte bei mir auf ner frischen Installation durchgehe, muss ich trotzdem nicht die Aliase zurücksetzen.

Würde mir das mal näher ansehen, falls das Projekt über das Web zugänglich ist.

Gruß
xmurrix
Nein, ist es leider nicht. Aber dann muss ich das selbst nochmal anschauen...
selbstentwickelte Module:
Downloads und Infos zu den Modulen: gibt es hier.
Modul: Forum | Version 0.9 | getestet: 4.6.24 MR, 4.8.11, 4.8.11 AMR
Modul: Galleriffic | Version: 0.3.4 BETA | getestet: 4.8.11, 4.8.11 AMR, 4.8.12, 4.8.12 AMR
Modul: Metadata | Version: 2.0 | getestet: 4.9.7, 4.9.7 AMR
Modul: Slider Gallery | Version: 1.0 | getestet: 4.9.12 AMR
Modul: Up- & Download | Version: 4.1 | getestet: 4.9.12 AMR

birke
Beiträge: 92
Registriert: Mo 2. Feb 2009, 16:58
Kontaktdaten:

Funktioniert fast

Beitrag von birke » Sa 14. Mär 2009, 07:20

Hallo xmurrix!

Danke für den Hinweis die auskommentierte Zeile zu aktivieren. Das bringt mich schon ein ganzes Stück weiter! Nun wird eine fast richtige Umleitung vorgenommen.

Der URL scheint nun richtig ausgegeben zu werden:

Code: Alles auswählen

/MANDANTENORDNER/fehlerseite/fehlerseite.html
Dies führt jedoch zu einem Aufruf von:

Code: Alles auswählen

http://localhost/MANDANTENORDNER/fehlerseite/fehlerseite.html
Richtig müsste es bei mir lokal heißen:

Code: Alles auswählen

http://localhost:8888/MANDANTENORDNER/fehlerseite/fehlerseite.html
Momentan fehlt nur der Port 8888, damit es funktioniert. Alle anderen Seiten werden jedoch richtig aufgelöst.

Das wundert mich ein wenig, da z.Bsp. meine Weiterleitung vom Hauptbaum zur Startseite funktioniert und im Prinzip das selbe Schema verwendet:

Code: Alles auswählen

/start/index.html
Wenn der Mandantenordner weg wäre, würde die Fehlerseite angezeigt werden.

Viele Grüße, Birke

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

Re: Funktioniert fast

Beitrag von xmurrix » So 15. Mär 2009, 10:47

Hallo Birke,
birke hat geschrieben:...Der URL scheint nun richtig ausgegeben zu werden:

Code: Alles auswählen

/MANDANTENORDNER/fehlerseite/fehlerseite.html
Dies führt jedoch zu einem Aufruf von:

Code: Alles auswählen

http://localhost/MANDANTENORDNER/fehlerseite/fehlerseite.html
Richtig müsste es bei mir lokal heißen:

Code: Alles auswählen

http://localhost:8888/MANDANTENORDNER/fehlerseite/fehlerseite.html
Momentan fehlt nur der Port 8888, damit es funktioniert. Alle anderen Seiten werden jedoch richtig aufgelöst....
danke für den Hinweis, das ist in der Tat ein Bug im AMR-Plugin.

Du kannst es beheben, in dem du folgende Änderungen durchführst.

In contenido/plugins/mod_rewrite/includes/front_content_controller.php die Zeile 54

Code: Alles auswählen

        $errsite = 'Location: ' . str_replace('&', '&', Contenido_Url::getInstance()->build($aParams, true));
gegen

Code: Alles auswählen

        $errsite = 'Location: ' . Contenido_Url::getInstance()->buildRedirect($aParams);
ersetzen.

In contenido/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php die Zeile 145

Code: Alles auswählen

            $urlPrefix = $aComp['scheme'] . '://' . $aComp['host'];
um die Zeilen

Code: Alles auswählen

            $urlPrefix = $aComp['scheme'] . '://' . $aComp['host'];
            if (mr_arrayValue($aComp, 'port', '') !== '') {
                $urlPrefix .= ':' . $aComp['port'];
            }
erweitern.

Im nächsten Release des Plugins ist das dann auch schon behoben.

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.

birke
Beiträge: 92
Registriert: Mo 2. Feb 2009, 16:58
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von birke » So 15. Mär 2009, 11:55

Hallo xmurrix,

ja super! Vielen Dank für die schnelle und funktionierende Lösung. Jetzt funktioniert die Umleitung auf die Fehlerseite. :)

Grüße, Birke

matt.loker
Beiträge: 203
Registriert: Mo 7. Mai 2007, 09:05
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von matt.loker » Mo 16. Mär 2009, 18:08

Hallo,
ich habe contenido 4.8.8 mit AMR 0.5.0 am laufen und habe ein Problem mit dem Sprachwechsel. Ich habe hier im Thread einiges zu dem Thema gefunden doch nichts für die 0.5.0

Mit AMR wird der link
./front_content.php?idcat=35&changelang=1
nicht in http://www.domain.de/deutsch/index.html
sondern in http://www.domain.de/englisch/deutsch/index.html interpretiert und bei Klick gelangt auf die Startseite der aktuellen Sprache.

Grüße
Matt

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

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Mo 16. Mär 2009, 22:27

Hallo Matt,
matt.loker hat geschrieben:...ich habe contenido 4.8.8 mit AMR 0.5.0 am laufen und habe ein Problem mit dem Sprachwechsel...
Mit AMR wird der link
./front_content.php?idcat=35&changelang=1
nicht in http://www.domain.de/deutsch/index.html
sondern in http://www.domain.de/englisch/deutsch/index.html interpretiert und bei Klick gelangt auf die Startseite der aktuellen Sprache...
öffne die Datei contenido/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php und ändere die Zeile 183

Code: Alles auswählen

        if ($param = $this->_getClientParameter($aParts, $aArgs)) {
in

Code: Alles auswählen

        if ($param = $this->_getClientParameter($aArgs)) {
Dann die Zeile 188

Code: Alles auswählen

        if ($param = $this->_getLanguageParameter($aParts, $aArgs)) {
in

Code: Alles auswählen

        if ($param = $this->_getLanguageParameter($aArgs)) {
Den Lösungansatz habe ich jetzt nicht getestet, so sollte es aber funktionieren.

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.

Gesperrt