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 » So 20. Jul 2008, 12:13

andreasb hat geschrieben:...
Hm. Jetzt habe ich eine index_e.html und eine index_d.html. Es kommt also bei Aufruf der Domain die index.html, die im Verzeichnis cms liegt.
Selbige verlinkt nach Auswahl auf eben zwei weitere Dateien.
...
Die index.html verlinkt wiederum auf index_d.html oder index_e.html, habe ich das richtig verstanden?

Dann erweitere doch die .htaccess um zwei neue Regeln:

Code: Alles auswählen

RewriteRule ^cms/index.html$ - [L] 
RewriteRule ^$ index.html [L]
RewriteRule ^cms/index_d.html$ - [L]
RewriteRule ^cms/index_e.html$ - [L]
Somit sollten Requests auf die beiden zusätzlichen Dateien auch vom Umschreiben ausgeschlossen werden.

Du kannst auch alternativ das Routing Feature vom Plugin verwenden, falls es sich bei den Zieldateien um Contenido-Artikel handelt:

Code: Alles auswählen

/index_d.html>>>front_content.php?idart=2
/index_e.html>>>front_content.php?idart=3
Gruß
xmurrix

pixelwerk
Beiträge: 37
Registriert: Di 22. Apr 2008, 18:03
Kontaktdaten:

Beitrag von pixelwerk » So 20. Jul 2008, 23:28

guten abend,

kann mir mal jemand sagen, wenn ich das plugin installiere wieso die htaccess nicht erstellt wird?

gruß pixelwerk

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

Beitrag von xmurrix » So 20. Jul 2008, 23:51

Hallo pixelwerk,

die .htaccess wird nicht bei der "Installation" des Plugins erstellt, die Datei ist im Pluginarchiv dabei und ist manuell in das Contenido Installationsverzeichnis zu kopieren, genauso wie die anderen Dateien des Plugins.

Da das Installationsscript auf PHP basiert und PHP unter normalen Umständen nicht auf alle Verzeichnisse Schreibrechte hat, würde eine vollständig automatische Installation bei den meisten Usern nicht funktionieren.

Man könnte aber alternativ, wie bei manchen anderen CMS die Installation über eine FTP-Schnittstelle realisieren (FTP User haben gewöhnlicherweise das Recht auf vollen Zugriff), was aber im moment im Contenido Core nicht vorgesehen ist.

Grüße
xmurrix

pixelwerk
Beiträge: 37
Registriert: Di 22. Apr 2008, 18:03
Kontaktdaten:

Beitrag von pixelwerk » Mo 21. Jul 2008, 06:46

Hallo xmurrix,

danke für deine Hilfe doch leider steh ich auf dem schlauch.

wie schon gesagt, ich habe alle Pluginscript in die verschiedenen Verzeichnisse kopiert, doch eine .htaccess kann ich bei mir nicht finden!

Die installation hat auch soweit geklappt nur eben die .htaccess fehlt und ohne die kann es ja nicht funktionieren.

ich arbeite auf einem mac hier kann ich keine Dateien mit einem Punkt vorne abspeichern, wenn die .htaccess allso schon im zip dabei ist und mit dem . enpackt wird würde das nicht funktionieren, wenn das der Fall ist kann mir hier jemand von euch die .htaccess posten damit ich sie direkt auf dem server erstellen kann und erklären in welches Vehrzeichniss sie gehört.

Danke

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

Beitrag von xmurrix » Mo 21. Jul 2008, 08:34

pixelwerk hat geschrieben:...
ich arbeite auf einem mac hier kann ich keine Dateien mit einem Punkt vorne abspeichern, wenn die .htaccess allso schon im zip dabei ist und mit dem . enpackt wird würde das nicht funktionieren
Aha ein Mac, auf dem die .htaccess nicht angezeigt wird, anbei der Inhalt davon:

Code: Alles auswählen

#AddHandler php-cgi .php .php4

<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]


# 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>
Die .htaccess ist in das Contenido Installationsverzeichnis abzulegen, also dort, wo die Ordner /contenido, /cms, /conlib usw. sind.

By the way:
http://www.wise-women.org/tutorials/htaccess/ :-)

Grüße
xmurrix

pixelwerk
Beiträge: 37
Registriert: Di 22. Apr 2008, 18:03
Kontaktdaten:

Beitrag von pixelwerk » Mo 21. Jul 2008, 09:11

super vielen Dank!!!

jetzt funktioniert alles.

gruß

andreasb
Beiträge: 212
Registriert: Fr 10. Dez 2004, 02:48
Wohnort: Fernwald
Kontaktdaten:

Beitrag von andreasb » Di 22. Jul 2008, 00:11

xmurrix hat geschrieben:
Dann erweitere doch die .htaccess um zwei neue Regeln:

Code: Alles auswählen

RewriteRule ^cms/index.html$ - [L] 
RewriteRule ^$ index.html [L]
RewriteRule ^cms/index_d.html$ - [L]
RewriteRule ^cms/index_e.html$ - [L]
Somit sollten Requests auf die beiden zusätzlichen Dateien auch vom Umschreiben ausgeschlossen werden.

Gruß
xmurrix
GENAU so hatte ich das auch gemacht, schien logisch. Allerdings habe ich den Faktor meiner scheinbar um sich greifenden temporären geistigen Umnachtung nicht bedacht...

Dergleichen funkt dann eher nicht:

Code: Alles auswählen

RewriteRule ^cms/index.html_d$ - [L]
;-)

Danke!

mikk
Beiträge: 32
Registriert: Do 17. Nov 2005, 19:49
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von mikk » Di 22. Jul 2008, 00:34

Wollte mich nur schnell bei xmurrix für dieses Plugin bedanken ;)
Viele Grüße, Mikk

philla
Beiträge: 5
Registriert: Mo 14. Jul 2008, 09:51
Kontaktdaten:

Beitrag von philla » Di 22. Jul 2008, 10:33

hallo zusammen,

folgendes problem tritt bei mir auf:
- seiten sind über 2 schreibeweisen der url zu erreichen

http://www.domain.de/kategorie1/unterka ... lname.html
oder
www.domain.de/unterkategorie1/artikelname.html

wie kann ich den 2. fall verhindern?

vielen dank vorab!

(contenido 4.8.5 / advanced mod rewrite 0.3.3)

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

Beitrag von xmurrix » Di 22. Jul 2008, 16:54

philla hat geschrieben:...folgendes problem tritt bei mir auf:
- seiten sind über 2 schreibeweisen der url zu erreichen

http://www.domain.de/kategorie1/unterka ... lname.html
oder
www.domain.de/unterkategorie1/artikelname.html

wie kann ich den 2. fall verhindern?
...
Hallo,

das sollte eigentlich nicht sein, wir die Seite unter der angegebenen Kategorie nicht gefunden, gibt es entweder eine Weiterleitung zur Startseite oder zur Fehlerseite.

Ein Grund dafür könnte aber ein niedriger Wert für die Fehlertoleranz bei der Erkennung von ähnlichen URLs sein. Per default ist dies auf 75 eingestellt, probier doch mal einen höheren Wert aus?

Gruß
xmurrix

philla
Beiträge: 5
Registriert: Mo 14. Jul 2008, 09:51
Kontaktdaten:

Beitrag von philla » Di 22. Jul 2008, 16:57

das habe ich schon probiert - bin auf 85% mit dem gleichen resultat...

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

Beitrag von xmurrix » Di 22. Jul 2008, 17:34

philla hat geschrieben:das habe ich schon probiert - bin auf 85% mit dem gleichen resultat...
Ist das Projekt öffentlich erreichbar? Würde mir das mal live ansehen.

Da fällt mir gerade auf, dass du Contenido 4.8.5 mit Advanced Mod Rewrite 0.3.3 verwendest. Das könnte auch das Problem verursachen. Die 0.3.3 er Version des Plugins ist für 4.8.6 gedacht, bei einem Einsatz unter 4.8.5 sollete man mit unvorhersehbaren Nebeneffekten rechnen.

Gruß
xmurrix

philla
Beiträge: 5
Registriert: Mo 14. Jul 2008, 09:51
Kontaktdaten:

Beitrag von philla » Di 22. Jul 2008, 18:02

xmurrix hat geschrieben:
philla hat geschrieben:das habe ich schon probiert - bin auf 85% mit dem gleichen resultat...
Ist das Projekt öffentlich erreichbar? Würde mir das mal live ansehen.

Da fällt mir gerade auf, dass du Contenido 4.8.5 mit Advanced Mod Rewrite 0.3.3 verwendest. Das könnte auch das Problem verursachen. Die 0.3.3 er Version des Plugins ist für 4.8.6 gedacht, bei einem Einsatz unter 4.8.5 sollete man mit unvorhersehbaren Nebeneffekten rechnen.

Gruß
xmurrix
ich habe dir den link als pm geschickt...

tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono » Mi 23. Jul 2008, 14:39

Ich hab da noch ein paar Probleme.

Wenn Frontend und Backend über unterschiedliche Domains angesprochen werden, die ein unterscheidlichen Document-Root haben akzeptiert die Konfigurationsseite den Pfad zur .htaccess Datei nicht, weil sie den falschen Document-Root zur Überprüfung verwendet. (Nämlich den des Backends)

Wenn ich alter Fuchs allerdings direkt in dem include-Verzeichniss rumfummel und den richtigen Wert in die serialisierten php-Daten einbaue, klappt alles wunderbar.

Der Fehler ist also nur, das die Überprüfung des Pfades nicht vom Mandanten-Document-Root ausgeht, sondern vom Backend.

Dann habe ich komische Zeilenumbrüche gefunden in der Datei include.con_edit.form.php. Dort zum Beispiel

Code: Alles auswählen

         // plugin Advanced Mod Rewrite - edit by stese        $tpl->set('s', 'URLNAME', i18n("Alias"));        // end plugin Advanced Mod Rewrite		$arrArtSpecs = getArtSpec();
statt:

Code: Alles auswählen

        // plugin Advanced Mod Rewrite - edit by stese
        $tpl->set('s', 'URLNAME', i18n("Alias"));
        // end plugin Advanced Mod Rewrite
        $arrArtSpecs = getArtSpec();
Ich hab die ZIP-Datei auf einem Mac entpackt, der kommt scheinbar nicht mit UNIX Zeilenumbrüchen klar. Vielleicht kannst Du die Zeilenumbrüche irgendwie vereinheitlichen, denn das Problem besteht nicht an allen geänderten Stellen.
Bis dann
Tono

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

Beitrag von xmurrix » Mi 23. Jul 2008, 21:13

tono hat geschrieben:...
Wenn Frontend und Backend über unterschiedliche Domains angesprochen werden, die ein unterscheidlichen Document-Root haben akzeptiert die Konfigurationsseite den Pfad zur .htaccess Datei nicht, weil sie den falschen Document-Root zur Überprüfung verwendet. (Nämlich den des Backends)
Hmm, in diesem Fall steht auch das Document-Root des aktuellen Clients nicht zur Verfügung, der Inhalt in $cfgClient[$client]['path']['frontend'] enthält zwar den HTML-Pfad (normalerweise mit /cms am Ende), auf das ist aber auch kein Verlass. Vielliecht nehme ich dann die Überprüfung raus, oder mache sie optional, so dass man als User das Setzen des Pfades zwingen kann.
tono hat geschrieben:...
Dann habe ich komische Zeilenumbrüche gefunden in der Datei include.con_edit.form.php. Dort zum Beispiel

Code: Alles auswählen

         // plugin Advanced Mod Rewrite - edit by stese        $tpl->set('s', 'URLNAME', i18n("Alias"));        // end plugin Advanced Mod Rewrite		$arrArtSpecs = getArtSpec();
Das sollte nicht sein, kommt in die Todoliste.

Gruß
xmurrix

Gesperrt