Plugin Advanced Mod Rewrite für Contenido 4.8.x

xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Beitrag von xmurrix »

Hallo jocare,
jocare hat geschrieben:...ich habe Contenido 4.8.3 am Laufen und seit kurzem das Rewrite Modul 0.2.1rc installiert...
sowohl Contenido 4.8.3 als auch das AMR-Plugin 0.2.1rc haben ihre Kinderkrankheiten. Daher würde ich dir empfehlen, zuerst deine Contenidoinstallation auf den neuersten Stand zu bringen, und dann die neueste Version des AMR-Plugins zu installieren.

Ein Contenidoupdate von 4.8.3 auf die neueste Version (aktuell die 4.8.10) sollte problemlos vonstatten gehen. Alleine aufgrund des Sicherheitsaspektes ist ein Update ratsam, deine Version ist angreifbarer als die aktuelle Contenido-Version.

Gruß
xmurrix
jocare
Beiträge: 2
Registriert: Di 27. Jan 2009, 15:22
Kontaktdaten:

Beitrag von jocare »

Danke für deine Antwort!

Gibt es ansonsten keine andere Möglichkeit, da der Kunde gerne weiterhin die 4.8.3 Version beibehalten möchte. Warum auch immer...
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Beitrag von xmurrix »

jocare hat geschrieben:...Gibt es ansonsten keine andere Möglichkeit, da der Kunde gerne weiterhin die 4.8.3 Version beibehalten möchte...
Du kannst dir mal die Datei contenido/plugins/mod_rewrite/classes/class.modrewrite.php genauer ansehen, um das Problem einzugenzen und zu beheben.

In der Zeile 612 wird, falls eine Artikelid ($idart) vorhanden ist, der Alias des Artikels gesetzt.

Code: Alles auswählen

$str_article = ModRewrite::get_art_websafename ( $idart, $idlang );
Die Funktion get_art_websafename(), die den Artikelalias liefert, ist in der Zeile 708.

Alternativ wird der Alias über die Variable $idartlang (falls vorhanden) geholt, siehe Zeile 618.

Code: Alles auswählen

$str_article = ModRewrite::get_art_lang_websafename ( $idartlang );
Wenn im Backend unter Artikeleigenschaften der Alias korrekt gespeichert wird, steht der Wert in der Tabelle {prefix}_art_lang.urlname drin.

Gruß
xmurrix
_wiewo_
Beiträge: 358
Registriert: Mo 8. Sep 2008, 11:12

Beitrag von _wiewo_ »

Moinsen

Hab mal wieder nen Prob mit dem MR
Conti 4.8.10 installiert, MR 0.5.2 raufgeschoben, patch rauf
und jetzt ist da mal was ganz ganz merkwürdiges im gange....

Bei dem Conti handelt es sich um eins mit aktuell 2 Mandanten
Aufgebaut ist alles so

Contenido = domain1.de
Mandant1 = domain2.de
Mandant2 = domain3.de

domain2.de => domain1.de/mandantenordner1
domain3.de => domain2.de/mandantenordner2

das funzt auch ohne Probs das umleiten

jetzt kommts aber
www.domain2.de/kategorie1 leitet auf die startseite um, obwohl es in kategorie1 nen artikel gibt
er erkennt also nicht die kategorie in der URL

wenn ich jetzt in Conti in den "Advanced Mod Rewrite" Einstellungen bei "Pfad zur .htaccess Datei aus Sicht des Web-Browsers" gucke, steht da "/" was ja eig. richtig ist, funzt nicht... also ausprobiert...
"/mandantenordner/" geht auch nicht
aber "/mandantenordner" geht
jetzt sehen die URLs so aus => www.domain2.de/mandantenorderkategorie/

mandantenorder und kategoriename in einem wort, dann lädt der alles richtig und erkennt die kategorien

so sehen die URLs natürlich sehr komisch aus, und richtig isses natürlich auch nicht


und wenn ich die sprache anstelle in dem MR einstellungen dann sehen die domains so aus =>www.domain2.de/mandantenordersprache/kategorie/
jetzt steht die kategorie getrennt aber die sprache sammt mandantenordner in einem wort

EDIT
wenn der link so aussieht => "www.domain2.de/mandantenorderkategorie/"
geht es ja, wenn ich nun nicht auf nen link klicke, sondern von hand => "www.domain2.de/kategorie/" eingebe funzt es auch
aber wenn alles so eingestellt ist, das er "www.domain2.de/kategorie/" selber erzeugt, gehts nicht

lG
Christian
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Beitrag von xmurrix »

_wiewo_ hat geschrieben:...jetzt kommts aber
www.domain2.de/kategorie1 leitet auf die startseite um, obwohl es in kategorie1 nen artikel gibt
er erkennt also nicht die kategorie in der URL...
Kann nicht nachvollziehen, warum das bei dir so ist, werde mir das verhalten des Plugins nochmals ansehen.

Gibt es eine möglichkeit, sich das irgendwo Live anzusehen und gegebenenfalls zu debuggen?

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

Beitrag von Dinkel »

Hi xmurrix,

zu der Version 0.5.2 hab ich eine Frage. Bei der 0.5.1 hast Du auch die Datei conlig/local.php mitgeliefert. Allerdings ist diese in 0.5.2 nicht mehr enthalten und ich sehe auch nichts im Changelog. Muss man hier was beachten?
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
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Beitrag von xmurrix »

Servus Dinkel,
Dinkel hat geschrieben:...Bei der 0.5.1 hast Du auch die Datei conlig/local.php mitgeliefert. Allerdings ist diese in 0.5.2 nicht mehr enthalten und ich sehe auch nichts im Changelog. Muss man hier was beachten?
in der conlib/local.php gab es nur eine erweiterte Funktion, die bei der DB-Klasse die SQL-Statements in einer globalen Variable gespeichert hat.
Das habe ich zeitweise gebraucht, um die SQL-Statements zu loggen. Für Contenido oder das Plugin ist das aber nicht wichtig - deshalb ist es in der Version 0.5.2 nicht mehr dabei.

Gruß
xmurrix
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Pfadnamen und Sonderzeichen

Beitrag von Oldperl »

Hallo,

bei mir ist ein Problem mit dem MR-Plugin aufgetreten. Bei einer Serverkonfiguration mit dem Contenido-root in einem Verzeichnispfad und einem Verzeichnisnamen mit Bindestrichen (http://meinserver.tld/hier/geht-es-weiter/cms), werden beim Umschreiben der URL die Bindestriche durch Unterstriche ersetzt.

Der Basepfad in der .htaccess sowie der Pfad zur .htaccess im Plugin wurden korrekt eingetragen. Evtl. sollte das Plugin diesen Pfad dann nutzen, um ihn aus dem MR auszuklammern.

Ich habe das allerdings nur in einer MR-Version <0.5.x festgestellt, in den aktuellen Versionen sollte das dann mal getestet werden.

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Pfadnamen und Sonderzeichen

Beitrag von xmurrix »

Servus Ortwin,

danke für den Hinweis, ich werde es mir ansehen.

Eventuell könnte das Problem auftreten, wenn ein existierender Ordner "pfad-zum-ordner" als Trennzeichen Bindestriche enthält und im Plugin die Konfiguration für Trennzeichen in Kategoriewörtern das Unterschtrich angegeben ist.

Gruß aus dem Süden
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Beitrag von Oldperl »

Hallo Murat,

ja ich denke das ist so der Fall. Evtl. ist es sogar besser, das man den Mandantenpfad ausklammert vom MR. Es sollen ja eigentlich nur die angehängten Teile umgeschrieben werden.

Ich hab halt erst mal blöd geschaut und dann ne ganze Zeit gesucht weil immer die Meldung kam, das die Seite nicht erreichbar sei. Bis ich mir dann die URL etwas genauer angesehen habe.

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
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 »

Hallo, ich habe einkleines Problem mit dem Plugin.
Ich habe auch schon die Suche bemüht aber leider nichts passendes gefunden.
Und zwar habe ich ein contenido in der Version 4.8.10 bei dem ich in den Mandanteneinstellungen die Fehlerseite und die Fehlerkategorie hinterlegt habe.
Habe ich das Plugin MR deaktiviert so wird wenn ich einen Link anklicke der keinen Artikel enthält oder eine ungültige Artikelnummer übergebe immer schön auf die Fehlerseite umgeleitet.

Habe ich das Plugin jedoch aktiviert, wird trotz Haken bei entsprechnder Option immer auf die Startseite geleitet. Woran könnte das liegen?
Ansonsten funktioniert das Plugin bisher ausgezeichnet und alle Seiten werden korrekt umgeschrieben.

Falls ihr noch weitere Informationen benötigt, sagt bescheid.
Ichhabe auch schon den Debugmodus des MR Plugin aktiviert, nur werde ich erschalgen von den ganzen Ausgaben.
Was mir nur auffällt ist das die Variablen mr $idart, $idcat = null sind. Was glaub ich ja erstmal korrekt ist und das Array Contenido_UrlBuilder_MR::buildUrl() $params enthält auch die korrekten Werte für die Fehlerseite und den Artikel.
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

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

Beitrag von xmurrix »

Hallo MarcoW,
MarcoW hat geschrieben:...Habe ich das Plugin jedoch aktiviert, wird trotz Haken bei entsprechnder Option immer auf die Startseite geleitet. Woran könnte das liegen?
Ansonsten funktioniert das Plugin bisher ausgezeichnet und alle Seiten werden korrekt umgeschrieben.
du kannst mal Probieren den Redirect abzufangen, also die generierte URLs auszugeben. Wenn im Plugin das Weiterleiten zur Fehlerseite aktiviert ist, geschieht das in der contenido/plugins/mod_rewrite/includes/front_content_controller.php Zeile 55. Gebe vor Aufruf der Methode mr_header einen die($errsite) an, um zu sehen, was da für eine URL generiert wird.

Code: Alles auswählen

$errsite = 'Location: ' . str_replace('&', '&', Contenido_Url::getInstance()->build($aParams, true));
die($errsite);
mr_header($errsite);
Das sollte aber nicht auf einem Produktivsystem passieren. Hast du eigentlich den Fix für den Bug in Redirects eingespielt? Den gibt es unter http://forum.contenido.org/viewtopic.php?f=62&t=23108.

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.
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 »

Hallo xmurrix,

erstmal vielen Dank für deine Antwort.
Um auf deine Frage eizugehen, ja den RedirectFix hatte ich schon eingespielt.

Folgende Ausgabe bekomme ich:

Code: Alles auswählen

Location: http://localhost/contenido/fehlerseite/fehlerseite.html?error=1
Das sieht soweit richtig aus für mich und wird auch richtig angezeigt wenn ich die url direkt so im Browser aufrufe.

Ach so, noch ein kleiner Nachtrag.
Wenn ich mir einen Link im hauptmenü ansehe bei dem kein Artikel hinterlegt ist, dann hat der die Form

Code: Alles auswählen

http://localhost/contenido/
das würde ja erklären wieso ich immer auf der Startseite lande. Aber wieso wird nicht die Artikelbezeichnung dran gehangen?
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

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

Beitrag von xmurrix »

MarcoW hat geschrieben:...Ach so, noch ein kleiner Nachtrag.
Wenn ich mir einen Link im hauptmenü ansehe bei dem kein Artikel hinterlegt ist, dann hat der die Form

Code: Alles auswählen

http://localhost/contenido/
das würde ja erklären wieso ich immer auf der Startseite lande. Aber wieso wird nicht die Artikelbezeichnung dran gehangen?
Wenn die URLs zu den Kategorien alle mit http://localhost/contenido/ beginnen, kann es folgende Ursachen haben:
- Wenn Contenido mit der Einstellung "$cfg["is_start_compatible"] = true;" läuft, das ist vermutlich bei dir nicht der Fall.
- Wenn in der Ausgabe eine fehlerhafte URL wie front_content.php?idcat=1?idart=2 vorkommt. Eine solche URL kann letztendlich der Grund sein, dass das Umschreiben aller (oder fast aller) Links nicht klappt.

Wie Sieht die HTML-Ausgabe bei dir mit und ohne aktiviertem Plugin aus, kannst du da was schicken?

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.
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 »

Ok,

also vielleicht hab ich mich etwas unverständlich ausgedrückt.
Mit aktiviertem Plugin bringen mich alle Links von Kategorien die keinen Inhalt haben auf die Startseite. Alle anderen werden schön zum Artikel umgeschrieben.

Mit deaktiviertem Plugin sehen die Links zu Kategorien ohne Inhalt wie folgt aus:

Code: Alles auswählen

http://localhost/contenido/mega/front_content.php?idcat=48
und sie bringen mich auf meine Fehlerseite, da sie ja wie gesagt keinen Inhalt besitzen.
Habe ich nun das Plugin aktiviert, sieht der gleiche Link aus wie ebend gepostet und bringt mich, was ja laut seinem Aufbau auch korrekt ist, zur Startseite.
Ich würde aber erwarten, das der Link dann wie folgt aussieht:

Code: Alles auswählen

http://localhost/contenido/impressum
und mich, da kein Inhalt dort hinterlegt ist, zur Fehlerseite bringt.
Gesperrt