Plugin Advanced Mod Rewrite für Contenido 4.8.x

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey » Sa 30. Aug 2008, 21:58

ich glaube das passt zu meinem Problem nicht.
Ich habe keine Fehlermeldung.
Bei mir wäre zu beachten das der Mandant nicht im nächsten Unterverzeichniss liegt sondern im Übernächsten!
Also nicht root/mandant/ sondern: root/mandant/2008

Das Frontend ist erreichbar über www.domain.tld/2008


Wenn ich die .haccess lösche und Mr deaktiviere stimmt alles.


Ich denke es muss leicht gehen, aber ich bilde mir ein schon alle Varianten probiert zu haben... :roll:

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

Beitrag von Supporter » Sa 30. Aug 2008, 22:08

Ich habe fast richtig gelegen, denn es muss in der config.php, index_controller.php und front_content.php der Pfad angeändert werden.

Achtung: Diese Änderung ist nur erforderlich wenn das Backend und das Frontend über unterschiedliche Domains erreichbar sind!

Hier die Änderungen:

config.php

Zeile 38 von $contenido_path = "../contenido/"; in $contenido_path = "../../contenido/"; abändern.

index_controller.php

Zeile 25 von $contenido_path = "../contenido/"; zu $contenido_path = "../../contenido/"; abändern.

front_content.php

Zeile 61 von include_once ('../contenido/classes/class.security.php'); zu include_once ('../../contenido/classes/class.security.php'); abändern.

Dann klappt's auch mit den Nachbarn ;)

Nachtrag:

Ich habe die einzelnen Clients auf dem Server in einem weiteren Unterverzeichnis liegen, weshalb die Konfiguration bei mir noch etwas anders ist, für den Hausgebrauch ist es also nicht nötig...
Zuletzt geändert von Supporter am Mi 3. Sep 2008, 02:37, insgesamt 2-mal geändert.
Ειμαστε στη μεση απο κατι...

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

Beitrag von Supporter » Sa 30. Aug 2008, 22:14

@ stefkey

Das Rootverzeichnis ist "/"
Also liegt der Ordner Contenido unter "/contenido"
Der Mandant liegt im Ordner "/mandant1/2008"

Die Domain zeigt in das Rootverzeichnis? Dann verschiebe die .htaccess doch einfach direkt in das Mandantenverzeichnis und ändere den RewriteBase in "/" ab, dann sollte es gehen.

Ansonsten kannst Du die .htaccess auch im Rootverzeichnis lassen und den RewriteBase auf "/mandant1/2008" ändern.

Der RewriteBase wird immer aus Sicht des Browsers geschrieben.
Ειμαστε στη μεση απο κατι...

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey » Sa 30. Aug 2008, 23:02

Hi Supporter,

die Domain liegt weder im Rootverzeichniss noch im Mandantenverzeichnis! Das ist wohl der Knackpunkt, wie ich jetzt feststelle!

Die Domain zeigt auf root/mandant1/

Contenido ist im root installiert und der Mandant ist in root/mandant1/2008
Das Frontend wird also mit domain.tld/2008 aufgerufen!
Ist das auch zu machen?


Grüße und danke,
stefkey

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

Beitrag von xmurrix » Sa 30. Aug 2008, 23:05

Hallo,

der Mandant liegt also im Verzeichnis /mandant1/2008/ und ist über http://domain/2008/ erreichbar.

Soll der Mandant auch bei aktivem MR unter http://domain/2008/ erreichbar sein?

Wenn ja:
.htaccess in /mandant1/2008/ ablegen, RewriteBase auf / setzen und in der Pluginkonfiguration als Pfad zur .htaccess /2008/ angeben.

Falls http://domain/ direkt aufgerufen, musst du dafür sorgen, dass es eine Weiterleitung zu /2008/ gibt.

Wenn nein:
.htaccess in /mandant1/ ablegen, RewriteBase auf /2008 setzen und in der Pluginkonfiguration als Pfad zur .htaccess / angeben.

So sollte es funktionieren, habe es aber nicht getestet. Hoffentlich habe ich es richtig verstanden und erklärt, ist doch etwas spät geworden...


Gruß
xmurrix

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey » Sa 30. Aug 2008, 23:15

Hi xmurrix,

das habe ich bereits probiert und es gerade wiederholt. Die Fehlermeldung im Contenido Backend unter Content->Advanced Mod Rewrite lautet:
Das Angegebene Verzeichnis "/home/www/webxxx/html/2008/"existiert nicht.

Die Meldung ist richtig denn das Verzeichniss liegt ja so:
root/mandant1/2008


Geht's also nicht so wie ich will?!

Grüße und Besten Dank!

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

Beitrag von xmurrix » Sa 30. Aug 2008, 23:23

...
das habe ich bereits probiert und es gerade wiederholt. Die Fehlermeldung im Contenido Backend unter Content->Advanced Mod Rewrite lautet:
Das Angegebene Verzeichnis "/home/www/webxxx/html/2008/"existiert nicht...
Das kommt daher, weil zur Überprüfung der Document-Root vom Backend verwendet wird, der aber nicht mit dem Frontend Document-Root identisch ist.

Falls du die neueste Version des Plugins verwendest, kanst du die Überprüfung umgehen, einfach den Haken bei "Pfad zur .htaccess Datei überprüfen" entfernen.

Gruß
xmurrix
Zuletzt geändert von xmurrix am Sa 30. Aug 2008, 23:55, insgesamt 1-mal geändert.

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey » Sa 30. Aug 2008, 23:33

z.Z. habe ich wegen PHP4 noch 4.8.6 am laufen, ich vermute mal es ist "change: Enabling routing definition from root" ,
also erst mit 4.8.7 möglich.

okay, dann mach ich das zuerst mal anders.


Danke für Euer Ohr!


Grüße,
stefkey

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

Beitrag von xmurrix » Sa 30. Aug 2008, 23:50

stefkey hat geschrieben:z.Z. habe ich wegen PHP4 noch 4.8.6 am laufen, ich vermute mal es ist "change: Enabling routing definition from root" ,
also erst mit 4.8.7 möglich....
Dann kannst es manuell anpassen, einfach in der /contenido/plugins/mod_rewrite/includes/include.mod_rewrite_content.php die Zeilen (ab195)

Code: Alles auswählen

        } elseif (!is_dir($_SERVER['DOCUMENT_ROOT'] . $request['rootdir'])) {
            $aData['ROOTDIR_ERROR'] = _notifyBox('error', 'Das Angegebene Verzeichnis "' . $_SERVER['DOCUMENT_ROOT'] . $request['rootdir'] . '"existiert nicht');
            $bError = true;
        }
wie folgt

Code: Alles auswählen

#        } elseif (!is_dir($_SERVER['DOCUMENT_ROOT'] . $request['rootdir'])) {
#            $aData['ROOTDIR_ERROR'] = _notifyBox('error', 'Das Angegebene Verzeichnis "' . $_SERVER['DOCUMENT_ROOT'] . $request['rootdir'] . '"existiert nicht');
#            $bError = true;
        }
kommentieren.

Das war von mir als Sicherheitsmaßnahme gedacht, hat sich aber als problematisch herausgestellt, wenn Mandant und Backend verschiedene Document-Roots haben.

Gruß
xmurrix

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey » So 31. Aug 2008, 11:33

danke, es klappt jetzt mit folgender Konfiguration:

Mandant auch bei aktivem MR unter http://domain/2008/ erreichbar:

.htaccess in /mandant1/2008/ abgelegt, RewriteBase auf /2008/ gesetzt und in der Pluginkonfiguration als Pfad zur .htaccess /2008/ angeben.


Vielen Dank!

Grüße,
stefkey

speedmaster
Beiträge: 59
Registriert: Mi 18. Apr 2007, 18:43
Kontaktdaten:

Start vom Hauptbaum aus?

Beitrag von speedmaster » Di 2. Sep 2008, 11:24

Hallo zusammen und recht herzlichen Dank an den Entwickler des Plugins. :!:

Leider habe ich ein kleines Problem damit.
Ich habe alles nach Anleitung installiert. Jedoch funktioniert ModRewrite nur, wenn ich im Backend die Option "Start vom Hauptbaum aus" aktiviere.

Dann werden meine URLs so dargestellt:
http://www.domain.de/con487/hauptnaviga ... itte-.html

Ich möchte aber die Kategorie nicht mit ausgeben.

Wenn ich die Option "Start vom Hauptbaum aus" deaktiviere, passiert ewig nix und dann erhalte ich im Firefox die Meldung "Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann."

Woran kann das Liegen?

Contenidoversion: 4.8.7
PHP Version 5

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

Re: Start vom Hauptbaum aus?

Beitrag von xmurrix » Di 2. Sep 2008, 12:34

Hallo,
speedmaster hat geschrieben:...Ich habe alles nach Anleitung installiert. Jedoch funktioniert ModRewrite nur, wenn ich im Backend die Option "Start vom Hauptbaum aus" aktiviere....
konnte dein Problem nachvollziehen, das Plugin funktioniert nicht korrekt, wenn die Option "Sollen die Kategorien und Artikel als eine HTML Ressource geschrieben werden, ohne Verzeichnisstruktur?" gewählt und die Option "Start vom Hauptbaum aus" nicht gewählt wurde.

Das scheint ein Bug zu sein, eine Lösung dafür habe ich momentan nicht, werde mich aber bei Gelegenheit darum kümmern.

Gruß
xmurrix

speedmaster
Beiträge: 59
Registriert: Mi 18. Apr 2007, 18:43
Kontaktdaten:

Beitrag von speedmaster » Di 2. Sep 2008, 14:48

AHA. Alles klar. Danke für die rasche Antwort.

GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Beitrag von GaMbIt_ » Mi 3. Sep 2008, 15:43

Nur mal so auf die Schnelle...

Ich habe die neueste 4.8.8 installiert und das aktuelle MR plugin hinterhergeschoben...
Funktioniert bis jetzt noch nicht... anscheinend wird in der contnido/includes/startup.php ein Fatal Error ausgelöst...

Genaueres weiss ich noch nicht...

ich wollt auch nur bescheid geben :)

Thorsten G.
Beiträge: 124
Registriert: Do 14. Jul 2005, 22:37
Kontaktdaten:

Beitrag von Thorsten G. » Mi 3. Sep 2008, 16:19

Jo, und zwar ruft diese Zeile (96)

Code: Alles auswählen

$_cecRegistry = cApiCECRegistry::getInstance();
einen Fehler hervor.

In etwa

Code: Alles auswählen

Call to private cApiCECRegistry::_[...] from invalid context in ... startup.php
Beste Grüße

Gesperrt