Plugin Advanced Mod Rewrite für Contenido 4.8.x

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

Beitrag von xmurrix » Do 11. Sep 2008, 11:22

Kansst du mal bitte folgendes probieren?

Die /contenido/main.loginform.php öffnen und an das Ende des Scripts die Zeilen

Code: Alles auswählen

<?php 
global $PHP_SELF, $QUERY_STRING;
echo "<pre>
\$this->url(): {$this->url()}
\$PHP_SELF: $PHP_SELF
\$QUERY_STRING: $QUERY_STRING
</pre>";
?>
eingeben.

Dann sollte bei Aufruf von http://localhost/contenido/plugins/mod_ ... nstall.php folgendes im Loginformular stehen:

Code: Alles auswählen

$this->url(): /contenido/plugins/mod_rewrite/install.php?contenido={contenido_session_id}
$PHP_SELF: /contenido/plugins/mod_rewrite/install.php
$QUERY_STRING: 
Wenn der Wert von $this->url() und bei dir $PHP_SELF nicht dem vom oben entsprechen, ist das nicht gut, dann sollte man der Sache auf den Grund gehen. Dabei wäre es wichtig zu wissen, was genau bei dir läuft (OS, PHP und HTTP-Server, jeweils mit Version und vor allem PHP Konfiguration).

Sollte die Debugausgabe richtig sein, dann wirst du auch normalerweise nach dem Login im Backend auf der richtigen Seite landen.

Gruß
xmurrix

alfamaennchen
Beiträge: 38
Registriert: So 27. Mär 2005, 21:29
Kontaktdaten:

Beitrag von alfamaennchen » Do 11. Sep 2008, 11:55

Hey xmurrix; danke für die Info!

Code: Alles auswählen

$this->url(): ?contenido=bf9d711f34h9a7007851b5b3b5818d21 
$PHP_SELF:  
$QUERY_STRING:
register_globals war „off”, habs „on” gestellt und siehe da - es läuft.

Code: Alles auswählen

$this->url(): /contenido/plugins/mod_rewrite/install.php?contenido=bf9d711f34h9a7007851b5b3b5818d21 
$PHP_SELF: /contenido/plugins/mod_rewrite/install.php 
$QUERY_STRING::
Ist register_globals on denn tatsächlich notwendig?

MfG

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

Beitrag von xmurrix » Do 11. Sep 2008, 12:10

alfamaennchen hat geschrieben:...Ist register_globals on denn tatsächlich notwendig?...
Nein, eigentlich ist register_globals nicht notwending und kann auf off gesetzt werden.

Dafür gibt es die /contenido/includes/globals_off.inc.php, in der die Inhalte von Superglobalen in den globalen Namensraum extrahiert werden.

Kann es sein, das bei dir etwa noch die Zeile

Code: Alles auswählen

$types_to_register = array ('GET', 'POST', 'COOKIE', 'SESSION');
drin ist?

Das ist mal geändert worden und man hat festgestellt, dass es Probleme bereitet. Neuerdings muss es wie folgt sein (back to the roots):

Code: Alles auswählen

$types_to_register = array ('GET', 'POST', 'COOKIE', 'SESSION', 'SERVER');
Die $PHP_SELF und $QUERY_STRING werden nämlich von $_SERVER extrahiert.

Gruß
xmurrix

alfamaennchen
Beiträge: 38
Registriert: So 27. Mär 2005, 21:29
Kontaktdaten:

Beitrag von alfamaennchen » Do 11. Sep 2008, 12:16

So schaut's aus bei mir:

Code: Alles auswählen

$types_to_register = array ('GET', 'POST', 'COOKIE', 'SESSION', 'SERVER');
… also aktuell :? … misteriös, misteriös

josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Testergebnis 0.4.5

Beitrag von josh » Sa 13. Sep 2008, 02:31

Hallo xmurrix,

ich teste gerade die Version 0.4.5 for Contenido 4.8.8
Mir sind ein paar Sachen aufgefallen. Evtl. sind sie bei dir nachvollziehbar?

1. "frontend.no_outputbuffer idart 5" schaltet bei mir mod_rewrite auf
allen Seiten ab.


2. Ein weiteres Problem bei mir:
Nur wenn bei: "Sollen die Kategorien und Artikel als eine HTML Ressource geschrieben werden, ohne Verzeichnisstruktur?" der Haken gesetzt ist,
wird die Seite "Über uns" nicht angezeigt.

Wenn ich den Menüpunkt zusammenschreibe "Überuns" kommt die Seite.
Ich kann das auch mit anderen Menüs nachvollziehen.
(Wie gesagt, nur wenn der Haken dort gesetzt ist tritt das auf)


3. Wenn der Trenner | im Feld "Kategorie-Artikel-Separator (Trenner zwischen Kategorieabschnitt und Artikelname)" eingegeben wird kommt in der URL %7C

Warum kann ich dort keinen / eingeben?


4. Es wäre evtl. ganz nützlich die installierte Version des Plugins auf der mod_rewrite Seite im Backend anzuzeigen.


Viele Grüße aus Ahlen

josh

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

Re: Testergebnis 0.4.5

Beitrag von xmurrix » Sa 13. Sep 2008, 21:16

Hallo,
josh hat geschrieben: 1. "frontend.no_outputbuffer idart 5" schaltet bei mir mod_rewrite auf allen Seiten ab.
Das kann eigentlich nicht sein, im Frontend wird die aktuelle Artikelid mit den in der Konfiguration eingegebenen Artikelids verglichen, nur wenn die Id übereinstimmt, werden die Urls nicht umschrieben.

josh hat geschrieben: 2. Ein weiteres Problem bei mir:
Nur wenn bei: "Sollen die Kategorien und Artikel als eine HTML Ressource geschrieben werden, ohne Verzeichnisstruktur?" der Haken gesetzt ist, wird die Seite "Über uns" nicht angezeigt.
Hast du nach Änderung der Einstellungen auch die Aliase zurückgesetzt?
Bei Änderungen in diesem Bereich muss das Plugin die neuen Einstellungen auf die Artikel-/Kategoriealiase anwenden, ansonsten kann es nähmlich vorkommen, dass manche Seitem im Frontend nicht erkannt werden. Die Einstellung 'Prozentsatz für "ähnlich klingende" URIs' wird nur auf Kategorien angewendet, nicht für Artikel, diese müssen eindeutig erkannt werden.

josh hat geschrieben: 3. Wenn der Trenner | im Feld "Kategorie-Artikel-Separator (Trenner zwischen Kategorieabschnitt und Artikelname)" eingegeben wird kommt in der URL %7C
Warum kann ich dort keinen / eingeben?
Das ist nicht in Ordnung so, ich war der Meinung, das dass Zeichen "|" zu den nicht-alphanumerischen Zeichen gehört, die man noch in der URL verwenden kann, ohne es in einen Hexadezimalwert umzuwandeln. Da habe ich wohl schlecht recherchiert, die Angabe von "|" macht als Trennzeichen keinen Sinn und sollte daher raus.

Zum "/" Zeichen:
Das ist eher ein historischer Grund. Den Konfigurationsbereich "Sollen die Kategorien und Artikel als eine HTML Ressource geschrieben werden, ohne Verzeichnisstruktur?" hatte ich aus der Vorgängerversion übernommen, und wie in der Bezeichnung angegeben, können dort URLs "ohne Verzeichnisstruktur" konfiguriert werden, daher wäre der Slash sinngemäß falsch am Platz.
Diesen Konfigurationbereich könnte man eigentlich überarbeiten, so dass die User eine neue Maske bekommen, in der sie das Aussehen der URLs nach eigenen Wünschen definieren können. Werde das mal etwas überarbeiten...

josh hat geschrieben: 4. Es wäre evtl. ganz nützlich die installierte Version des Plugins auf der mod_rewrite Seite im Backend anzuzeigen.
Das ist eine gute Idee, nehme ich in die nächste Version auf.

Gruß
xmurrix

josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Re: Testergebnis 0.4.5

Beitrag von josh » So 14. Sep 2008, 15:20

xmurrix hat geschrieben:Hallo,
josh hat geschrieben: 1. "frontend.no_outputbuffer idart 5" schaltet bei mir mod_rewrite auf allen Seiten ab.
Ich habe das nochmal getestet. Wenn du auf das Menü klickst welches von mod_rewrite ausgenommen wird, wird die Seite neu geladen und auch alle anderen Menüs von mod_rewrite ausgenommen.

Umgekehrt: Beim Klick auf ein mod_rewrite Menü wird auch das ausgenommene Menü umgeschrieben.
josh hat geschrieben: 2. Ein weiteres Problem bei mir:
Nur wenn bei: "Sollen die Kategorien und Artikel als eine HTML Ressource geschrieben werden, ohne Verzeichnisstruktur?" der Haken gesetzt ist, wird die Seite "Über uns" nicht angezeigt.
Die Aliase habe ich zurückgesetzt.
Du kannst das mit dem Beispielmandanten nachvollziehen.

Viele Grüße

josh

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

Re: Testergebnis 0.4.5

Beitrag von xmurrix » So 14. Sep 2008, 21:43

josh hat geschrieben: 1. "frontend.no_outputbuffer idart 5" schaltet bei mir mod_rewrite auf allen Seiten ab.
Da muss es einen anderen Grund dafür geben, die Überprüfung, ob der Code der Seite im Frontend in den Ausgabepuffer geschrieben wird und dadurch auch vom Plugin verarbeitet werden kann, ist in Ordnung.

Viellicht liegt da ein Missverständniss vor. Wird z. B. der Artikel mit der Id 5 von der Ausgabepufferung ausgechlossen, werden alle URLs in der ausgegebnenen Seite "nicht" umschrieben.
josh hat geschrieben: 2. Ein weiteres Problem bei mir:
Nur wenn bei: "Sollen die Kategorien und Artikel als eine HTML Ressource geschrieben werden, ohne Verzeichnisstruktur?" der Haken gesetzt ist, wird die Seite "Über uns" nicht angezeigt.
Vermutlich hängt das mit einem Bug zusammen, den ich leider in die Version 0.4.5 eingebaut habe. Dadurch wird das Plugin im Backend komplett deaktiviert, d. h. es reagiert auch nicht auf Änderungen an Kategorien und Artikel.

Eine korrigierte Version der betroffenen Datei "/contenido/plugins/mod_rewrite/includes/config.plugin.php" kann unter folgender Adresse heruntergeladen werden:
http://www.purc.de/temp/plugin_advanced ... in.php.zip

Gruß
xmurrix

josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Re: Testergebnis 0.4.5

Beitrag von josh » Mo 15. Sep 2008, 08:33

1. "frontend.no_outputbuffer idart 5" schaltet bei mir mod_rewrite auf allen Seiten ab.
Viellicht liegt da ein Missverständniss vor.
OK, habe ich wohl anders verstanden.
josh hat geschrieben: 2. Ein weiteres Problem bei mir:
Nur wenn bei: "Sollen die Kategorien und Artikel als eine HTML Ressource geschrieben werden, ohne Verzeichnisstruktur?" der Haken gesetzt ist, wird die Seite "Über uns" nicht angezeigt.
Vermutlich hängt das mit einem Bug zusammen, den ...
Ich habe die Datei ausgetauscht. Hat leider keine Änderung ergeben.

Die Leerzeichen "Über uns" werden in die URL "ueber-uns" als Alias umgewandelt. Die Seite wird aber nicht gefunden wenn der o. a. Haken gesetzt ist.


Viele Grüße
josh

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

Re: Testergebnis 0.4.5

Beitrag von xmurrix » Mo 15. Sep 2008, 09:10

Morgen,
josh hat geschrieben:...Die Leerzeichen "Über uns" werden in die URL "ueber-uns" als Alias umgewandelt. Die Seite wird aber nicht gefunden wenn der o. a. Haken gesetzt ist...
das werde ich mir näher ansehen, sollte eigentlich nicht sein.

Gruß
xmurrix

anubis2k
Beiträge: 50
Registriert: Fr 27. Jul 2007, 13:39
Kontaktdaten:

Beitrag von anubis2k » Di 16. Sep 2008, 14:05

Sagt mal, gibt es eigentlich auch ein Komplettpaket (Contenido + MR)?
Bei der 4.6.x war das doch der Fall, oder bin ich da gerade etwas verwirrt?!? :roll:

Mfg
Anubis

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

Beitrag von xmurrix » Di 16. Sep 2008, 14:54

Hallo,
anubis2k hat geschrieben:Sagt mal, gibt es eigentlich auch ein Komplettpaket (Contenido + MR)?...
ein Komplettpaket gibt es nicht, das war früher der Fall, weil die Integration von Mod rewrite mit erheblichen Änderungen an den Contenido Coredateien möglich war.

Mittlerweile ist das aber nicht mehr in dem Maße nötig, da Contenido viele Möglichkeiten (Chains) bietet, um eigene Funktionen einzubinden. Daher ist MR als Plugin umgesetzt worden, der bei Bedarf einfach hinzugefügt werden kann.

Gruß
xmurrix

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

Re: Testergebnis 0.4.5

Beitrag von xmurrix » Di 16. Sep 2008, 21:20

josh hat geschrieben:...Die Leerzeichen "Über uns" werden in die URL "ueber-uns" als Alias umgewandelt. Die Seite wird aber nicht gefunden wenn der o. a. Haken gesetzt ist...
Habe gerade beim Beispielmandanten eine "Über uns" Seite angelegt, die auch gefunden wurde. Du hast geschrieben, dass du auch die Aliase zurückgesetzt hast. Warum das jetzt bei dir nicht geht, kann ich momentan nicht nachvollziehen.

Versuche doch mal das im MR-Plugin mitgelieferte Testscript /cms/mr_test.php auszuführen und anaylsiere die Debugausgabe (links oben), eventuell lässt sich so das Problem eingrenzen.

Gruß
xmurrix

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Testergebnis 0.4.5

Beitrag von derSteffen » Fr 19. Sep 2008, 10:18

Hallo xmurrix,

ich verwende DeinPluginunter einer 4.8.7 läuft tadellos. Vielen Dank dafür!

Eine Sache hätte ich allerdings. Meine Seite sollte zweisprachig sein. Nun habe ich allerdings folgenden Effekt das meine Home-Seite unter:
www.domain.de, www.domain.de/de/, sowie unter www.domain.de/de/index.html erreichbar ist! Schön wäre allerdings wenn die Startseite immer nur durch eine URl erreichbar wäre.

In meinen Einstellungen unter ModRewrite sage ich Fehlertoleranz = null (also 100%) und ich lasse alle Artikel mit .html ausgeben.

Dann habe ich folgendes versucht bei den Routing Definitionen:

Code: Alles auswählen

/de/>>>/
/de/index.html>>>/
Auch kein Erfolg.

könntest du mir einen Tipp geben!

PS. Muss meine .htaccess für die Routing Definitionen eigentlich beschreibar sein (CHMOD 777)

Vielen Dank

Steffen

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

Re: Testergebnis 0.4.5

Beitrag von xmurrix » Fr 19. Sep 2008, 13:02

Hallo der Steffen,
derSteffen hat geschrieben:Hallo xmurrix,

ich verwende DeinPluginunter einer 4.8.7 läuft tadellos. Vielen Dank dafür!

Eine Sache hätte ich allerdings. Meine Seite sollte zweisprachig sein. Nun habe ich allerdings folgenden Effekt das meine Home-Seite unter:
www.domain.de, www.domain.de/de/, sowie unter www.domain.de/de/index.html erreichbar ist! Schön wäre allerdings wenn die Startseite immer nur durch eine URl erreichbar wäre.
...In meinen Einstellungen unter ModRewrite sage ich Fehlertoleranz = null (also 100%) und ich lasse alle Artikel mit .html ausgeben...
Die Einstellung der Fehlertoleranz wirkt sich nicht auf deim Problem aus, hierbei geht es nur darum, dass das Plugin z. b. die Kategorie "a_test_cat" auch noch unter "a_tescht_cat" finden kann, also bei Änderungen der Schreibweise.
...Dann habe ich folgendes versucht bei den Routing Definitionen:

Code: Alles auswählen

/de/>>>/
/de/index.html>>>/
Das ist nur ein internes Routing, dabei werden die idcat und oder idart gegen die neue ersetzt. In deinem Fall, du möchtest sicher Dublicated Contrent verhindern, könnte das Aktivieren der entsprechenden Option in der Mod Rewrite Einstellung hilfreich sein. Zusätzlich das Aktivieren der Option zum Anhängen des Artikelnamen zur der URL.

Das alleine wird aber nicht ausreichen, eine bessere Lösung wäre dies in der .htaccess abzufangen.

Code: Alles auswählen

# request auf root '/' und '/de/' umleiten auf "/de/index.html" mit der statusmeldung "moved permanently"
RewriteRule !/$ http://domain/de/index.html [R=301]
RewriteRule !/de/$ http://domain/de/index.html [R=301]
So in der Art sollte es gehen, habe es aber nicht getestet.

Gruß
xmurrix

Gesperrt