Plugin Advanced Mod Rewrite für Contenido 4.8.x

BagHira
Beiträge: 486
Registriert: Do 23. Feb 2006, 19:42
Wohnort: Tirschenreuth / Oberpfalz / Bayern
Kontaktdaten:

Beitrag von BagHira » Do 14. Aug 2008, 17:08

Vielen Dank xmurrix,
dein Tipp hat mich sehr viel weiter gebracht :-)

Jedoch ist es bei der Installation des Plugins 0.4.3 zu einer Fehlermeldung gekommen.

Code: Alles auswählen

[14-Aug-2008 17:47:28] /contenido/plugins/mod_rewrite/install.php?install=1&contenido=session MySQL error 1054: Unknown column 'urlname' in 'field list'
SELECT urlname FROM con_art_lang LIMIT 0,1
[14-Aug-2008 17:47:28] /contenido/plugins/mod_rewrite/install.php?install=1&contenido=session next_record called with no query pending.
Desweiteren hat wohl die aktuelle Version (0.4.3) des Plugins Probleme mit Weiterleitungen, diese "erscheinen" nur als weise Seite - keine Errorlogeinträge.
Gruß Holger

Träumer haben vielleicht keinen Plan, aber Realisten haben keine Vision.

Handgewickelte Glasperlen Facebook Google+

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

Beitrag von xmurrix » Do 14. Aug 2008, 17:37

BagHira hat geschrieben:...Jedoch ist es bei der Installation des Plugins 0.4.3 zu einer Fehlermeldung gekommen.

Code: Alles auswählen

[14-Aug-2008 17:47:28] /contenido/plugins/mod_rewrite/install.php?install=1&contenido=session MySQL error 1054: Unknown column 'urlname' in 'field list'
SELECT urlname FROM con_art_lang LIMIT 0,1
[14-Aug-2008 17:47:28] /contenido/plugins/mod_rewrite/install.php?install=1&contenido=session next_record called with no query pending.
Ich weis, das ist nicht eine saubere Art und Weise, aber ein einfacher Weg um festzstellen, ob es eine Spalte 'urlname' in der Tabelle 'con_art_lang' gibt. Existiert sie nicht, quitiert MySQL dies mit einer Fehlermeldung, die dann in der error.log landet. Dafür hat das Plugin die Erkenntnis und legt die Spalte an. Trotzdem, so ein Fehler kann einen iritieren, ich überlege mir da was.
BagHira hat geschrieben:...Desweiteren hat wohl die aktuelle Version (0.4.3) des Plugins Probleme mit Weiterleitungen, diese "erscheinen" nur als weise Seite - keine Errorlogeinträge.
Das stimmt, es gibt ein Workaround dafür unter http://forum.contenido.org/viewtopic.ph ... 749#121749.
Des weiteren sollten Weiterleitungen nur mit "front_content.php..." beginnen, nicht mit "./front_..." oder "/front_...", das Abfangen solcher URLs werde ich in die nächste Version integrieren.

Gruß
xmurrix

BagHira
Beiträge: 486
Registriert: Do 23. Feb 2006, 19:42
Wohnort: Tirschenreuth / Oberpfalz / Bayern
Kontaktdaten:

Beitrag von BagHira » Do 14. Aug 2008, 18:30

xmurrix hat geschrieben:
BagHira hat geschrieben:...Jedoch ist es bei der Installation des Plugins 0.4.3 zu einer Fehlermeldung gekommen.
Ich weis, das ist nicht eine saubere Art und Weise, aber ein einfacher Weg....
Kein Problem, es hatte mich nur etwas verwundert und nach dem ganzen hin und her.... wichtig ist ja, daß das Feld angelegt wird.
xmurrix hat geschrieben:
BagHira hat geschrieben:...Probleme mit Weiterleitungen...
Das stimmt, es gibt ein Workaround dafür unter http://forum.contenido.org/viewtopic.ph ... 749#121749.
Des weiteren sollten Weiterleitungen nur mit "front_content.php..." beginnen, nicht mit "./front_..." oder "/front_...", das Abfangen solcher URLs werde ich in die nächste Version integrieren.
Sorry, das Workaround hatte ich überlesen :oops: nun ist alles wieder so wie es sein soll :-) (bis auf den Linkchecker <- betrifft aber nicht das Plugin)

Vielen Dank an dich, an deine und an stese´s Arbeit und Zeit -> Hut ab!
Gruß Holger

Träumer haben vielleicht keinen Plan, aber Realisten haben keine Vision.

Handgewickelte Glasperlen Facebook Google+

Supporter
Beiträge: 124
Registriert: Mo 12. Mai 2008, 14:21
Wohnort: In the middle of something...
Kontaktdaten:

Beitrag von Supporter » Do 14. Aug 2008, 21:23

Hey xmurrix

Ich bin mir gerade nicht sicher, aber ist die 4.8.7er jetzt stabil?
Ειμαστε στη μεση απο κατι...

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

Beitrag von xmurrix » Do 14. Aug 2008, 21:56

Supporter hat geschrieben:Hey xmurrix

Ich bin mir gerade nicht sicher, aber ist die 4.8.7er jetzt stabil?
Hallo,

ich würde die Contenido Version 4.8.7 als stabil einstufen. Wenn du das Plugin meinst, da ist die Version 0.4.3 auch stabil. Zumindest ist mir kein User bekannt, bei dem es extreme Probleme gab. 2 kleinere Bugs/Verbessungsmöglichkeiten gibt es noch, dazu stehen Infos im Startbeitrag.

Dennoch kann ich für nichts garantieren :-)

Gruß
xmurrix

Supporter
Beiträge: 124
Registriert: Mo 12. Mai 2008, 14:21
Wohnort: In the middle of something...
Kontaktdaten:

Beitrag von Supporter » Sa 16. Aug 2008, 03:50

@ Mods: Kann man diesen Thread nicht mal FETT pinnen? Das wäre doch nett!
Ειμαστε στη μεση απο κατι...

Supporter
Beiträge: 124
Registriert: Mo 12. Mai 2008, 14:21
Wohnort: In the middle of something...
Kontaktdaten:

Beitrag von Supporter » Sa 16. Aug 2008, 04:00

Ähm xmurrix

Wenn das Plugin und Contenido ab der Version 4.8.7 ohenhin nur noch mit PHP5 läuft, dann wäre es sinnvoll den AddHandler in der .htaccess entsprechend abzuändern:

Code: Alles auswählen

AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php

<IfModule mod_rewrite.c>
RewriteEngine on

# Specify a base URL-path for the rules
# -------------------------------------
RewriteBase /cms


# Exclude some files and directories from rewriting
# -------------------------------------------------
RewriteRule ^usage/.*$ - [L]
RewriteRule ^contenido/.*$ - [L]
RewriteRule ^setup/.*$ - [L]
RewriteRule ^cms/upload/.*$ - [L]
RewriteRule ^cms/test/.*$ - [L]
RewriteRule ^cms/index_controller.php.*$ - [L]
RewriteRule ^cms/front_content.php.*$ - [L]
# enable following line if you want to run the plugin test
#RewriteRule ^cms/mr_test.php.*$ - [L]


# Catch some common exploits in query string to get rid of them
# NOTE: Conditions to prevent protocolls (ftp, http[s]) in query string could be a
#       disadvantage in some cases
# --------------------------------------------------------------------------------
RewriteCond %{QUERY_STRING} contenido_path=.*$  [NC,OR]
RewriteCond %{QUERY_STRING} cfg\[path\]=.*$  [NC,OR]
RewriteCond %{QUERY_STRING} _PHPLIB\[libdir\]=.*$  [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} ftp://.*$  [NC,OR] 
RewriteCond %{QUERY_STRING} http[s]*://.*$ [NC] 
RewriteRule ^.* - [F,L]  # all matching conditions from above will end in nirvana


# One RewriteRule to rule them all
# --------------------------------
RewriteRule !\.(js|ico|gif|jpg|jpeg|png|css|pdf)$ index_controller.php [NC,QSA,L]

</IfModule>
Schließlich kämen Neulinge, welche bei 1und1 hosten, gleich in Bedroullie beziehungsweise würde es zu Verwirrungen führen ;)
Ειμαστε στη μεση απο κατι...

morgenstern
Beiträge: 30
Registriert: Di 26. Okt 2004, 16:04
Kontaktdaten:

Beitrag von morgenstern » Sa 16. Aug 2008, 16:45

Hi xmurrix, Erst mal vielen Dank für die Zeit die Du in das Plugin und Contenido investierst.

Habe ein Problem mit :

Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE in /home/www/web4/html/WGB/contenido/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php on line 116

Contenido 4.8.7
MR-Plugin 0.4.3
Server Betriebssystem Apache
PHP database extension mysql
Datenbankserver-Version 4.1.22-standard
Installierte PHP-Version 5.0.5

Habe irgendwo gelesen, dass erst ab PHP 5.1.4 oder so funktioniert,
Kann vermutlich mein Provider nicht umstimmen ein neueres PHP zu installieren.
Unter XAMPP mit PHP 5.2.5 funktioniert das Plugin.

Thomas

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

Beitrag von xmurrix » Sa 16. Aug 2008, 20:29

morgenstern hat geschrieben:...Habe ein Problem mit :

Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE in /home/www/web4/html/WGB/contenido/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php on line 116
...
Installierte PHP-Version 5.0.5
...
Hallo,

die verwendete PHP-Version untzerstützt das Type-Hinting von arrays nicht, du könntest also die Zeile 116

Code: Alles auswählen

    public function buildUrl(array $params, $bUseAbsolutePath=false) {
in

Code: Alles auswählen

    public function buildUrl($params, $bUseAbsolutePath=false) {
ändern. Dann wird wahrscheinlich der PHP Interpreter immer noch meckern, weil die gleiche Methode der Klasse Contenido_UrlBuilder (/contenido/classes/UrlBuilder/Contenido_UrlBuilder.class.php), genau das voraussetzt.
Zeile 77:

Code: Alles auswählen

    abstract public function buildUrl(array $aParams, $bUseAbsolutePath = false);
Diese Funktion ist sozusagen die Vorgabe, an die sich auch das Plugin hält.

Du könntest auch hier das "array" vor $aParams entfernen, damit das funktioniert. Beim nächsten Update würde das aber überschrieben werden. Auch die neuen Klassen für Kategorien (/contenido/classes/Contenido_Category/Contenido_Category.class.php) verwenden das Type-Hinting mit array und du kannst davon ausgehen, dass das in Zukunft sehr häufig vorkommen wird.

Besser wäre es wohl, dem Provider dazu zu bringen, eine etwas neuere PHP 5 zu installieren, die 5.0.5 ist doch etwas alt.

Gruß
xmurrix

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

Beitrag von xmurrix » Sa 16. Aug 2008, 20:32

Supporter hat geschrieben:...Wenn das Plugin und Contenido ab der Version 4.8.7 ohenhin nur noch mit PHP5 läuft, dann wäre es sinnvoll den AddHandler in der .htaccess entsprechend abzuändern:

Code: Alles auswählen

AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
...
...
Gebe dir recht, das sollte angepasst werden, so wie du beschrieben hast - Kommt in die Todoliste.

Gruß
xmurrix

Supporter
Beiträge: 124
Registriert: Mo 12. Mai 2008, 14:21
Wohnort: In the middle of something...
Kontaktdaten:

Beitrag von Supporter » Mo 18. Aug 2008, 02:01

Hallo xmurrix

Bitte schau mal in diesen Thread rein, könnte was mit dem Plugin zu tun haben.

http://forum.contenido.org/viewtopic.php?t=22294
Ειμαστε στη μεση απο κατι...

Supporter
Beiträge: 124
Registriert: Mo 12. Mai 2008, 14:21
Wohnort: In the middle of something...
Kontaktdaten:

Beitrag von Supporter » Mo 18. Aug 2008, 03:28

Hallo xmurrix

Ich verwende die 4.8.7er mit dem 0.4.3er Plugin und setze zusätzlich einen XTC Shop ein, der ebenfalls ModRewrite verwendet. Leider "bevormundet" dein MR das MR von XTC, weshalb die Kategorien aus dem Shop nicht aufgerufen werden können.

Siehe (WCMS): www.mein-pc-okay.com/de/
Siehe (SHOP): www.mein-pc-okay.com/de/shop/

Gibt es eine Möglichkeit das MR von Contenido aus (.htaccess im root) komplett für das Verzeichnis, in dem der Shop liegt, zu deaktivieren? Ich habe es schon probiert, aber irgendwie klappt's nicht so recht...

Der Serverpfad sieht so aus:

<root>/cms/
<root>/de/shop/

die .htaccess sieht so aus:

Code: Alles auswählen

<IfModule mod_rewrite.c>
RewriteEngine on

# Specify a base URL-path for the rules
# -------------------------------------

RewriteBase /cms


# Exclude some files and directories from rewriting
# -------------------------------------------------

RewriteRule ^contenido/.*$ - [L]
RewriteRule ^cms/upload/.*$ - [L]
RewriteRule ^de/shop/.*$ - [L]

RewriteRule ^cms/robots.txt.*$ - [L]
RewriteRule ^cms/index_controller.php.*$ - [L]
RewriteRule ^cms/front_content.php.*$ - [L]


# Catch some common exploits in query string to get rid of them
# NOTE: Conditions to prevent protocolls (ftp, http[s]) in query string could be a
#       disadvantage in some cases
# --------------------------------------------------------------------------------

RewriteCond %{QUERY_STRING} contenido_path=.*$  [NC,OR]
RewriteCond %{QUERY_STRING} cfg\[path\]=.*$  [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} ftp://.*$  [NC,OR] 
RewriteCond %{QUERY_STRING} http[s]*://.*$ [NC] 
RewriteRule ^.* - [F,L]  # all matching conditions from above will end in nirvana


# One RewriteRule to rule them all
# --------------------------------
RewriteRule !\.(js|ico|gif|jpg|jpeg|png|css|pdf)$ index_controller.php [QSA,L]

</IfModule>
Hast Du vielleicht eine Idee?!
Ειμαστε στη μεση απο κατι...

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

Beitrag von xmurrix » Mo 18. Aug 2008, 10:20

Hallo,

habe es soeben bei gegengeprüft. Der Mandant liegt im <root>/cms/, Requests in das Verzeichnis <root>/de/shop/ sind vom Umschreiben ausgeschlossen RewriteRule ^de/shop/.*$ - [L]. Rufe ich nun die http://host/de/shop/ auf, erhalte ich die darin vorhandene index-Seite.

Eine eigene für den Shop angepasste .htaccess in /de/shop/ könnte das auflösen der URLs für den Shop steuern.

Da aber bei dir der Request zum Shop an /cms/index_controller.php weitergeleitet werden, vermute ich den Grund woanders.

Gruß
xmurrix

mauerblume
Beiträge: 89
Registriert: Do 12. Feb 2004, 20:42
Wohnort: Niederlausitz
Kontaktdaten:

Beitrag von mauerblume » Mo 18. Aug 2008, 18:00

Ich habe gerade das Plugin auf einer 4.8.7 installiert.

Das Setup lief problemlos, das Rewriting schein auch zu funktionieren, wenn ich die Maus über die Navigation halte, sehe ich, dass die URLs so umgeschrieben werden, wie ich es auch haben möchte.

Wenn ich nun aber mal darauf klicke, erhalte ich den Fehler:

The requested URL /xxxxxx/ was not found on this server.

Was habe ich falsch gemacht?

Der Mandant liegt ganz normal in "cms"
Das ganze System ist im Rootverzeichnis, der Mandant hat also den Pfad: www.domainname.de/cms

Die .htaccess habe ich so gelassen, wie sie mitgeliefert wurde.

Also:

Code: Alles auswählen

ReWriteBase /cms

Im Backend den Mod Rewrite akitviert, und als Pfad zur .htaccess Datei den Standardpfad gelassen /

Hm.

Was habe ich falsch gemacht?

Zwei Punkte in meiner Navigation sind interne Weiterleitungen.
Das Workaround mit den internen Weiterleitungen ./front_content.php gegen front_content.php tauschen habe ich auch probiert, hilft nicht.

Ich habe wohl etwa generelles falsch, oder?

Kann mir jemand helfen? Bitte Bitte Bitte

BagHira
Beiträge: 486
Registriert: Do 23. Feb 2006, 19:42
Wohnort: Tirschenreuth / Oberpfalz / Bayern
Kontaktdaten:

Beitrag von BagHira » Mo 18. Aug 2008, 18:05

mauerblume hat geschrieben:Was habe ich falsch gemacht?
hasst du den die _.htaccess in .htaccess umbenannt?
Gruß Holger

Träumer haben vielleicht keinen Plan, aber Realisten haben keine Vision.

Handgewickelte Glasperlen Facebook Google+

Gesperrt