Plugin Advanced Mod Rewrite für Contenido 4.8.x

Steffen44
Beiträge: 134
Registriert: So 12. Dez 2004, 12:18
Kontaktdaten:

Beitrag von Steffen44 » Di 10. Jun 2008, 14:06

ich habe nochmal eine Frage ich habe in der Kategorie 2 Artikel angelegt.

Und habe den zweiten Artikel im Startartikel verlinkt. Wenn ich den Link im TinyMCE einfüge dann macht er automatisch aus dem php link einen html Link. Rufe ich diesen Link dann im Frontend auf funktioniert dieser nicht.

Ich habe die einfachsten Einstellungen gewählt. Das Mod Rewrite Plugin generiert mir nun "meineseite.htm".


Was mache ich falsch ?

Gruß
Steffen

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

Beitrag von xmurrix » Di 10. Jun 2008, 17:44

Steffen44 hat geschrieben:

Code: Alles auswählen

Redirect /alte-seite.htm neueseite.html
das funktioniert leider nicht.
Apache versucht hier, die Anfrage an neueseite.html weiterzuleiten, diese Seite gibt es aber nicht. Das Ziel des redirects muss eine auf dem Sever vorhandene Datei sein.
Eventuell sollte es gehen, wenn du die volle URL für das Ziel angibst, z. B.

Code: Alles auswählen

# 301 = moved permanently
Redirect 301 /alte-seite.htm http://domain.tld/neueseite.html
Dann sollte es klappen.

Steffen44 hat geschrieben: ...Kannst du mir ein etwas detailierteres Beispiel geben wie ich die Routung Funktion in Mod Rewrite Plugin benutzen muß ?

Code: Alles auswählen

/alte-seite.htm>>>/neueseite.html
???
...
Du gibts auf der linken Seite die eingehende URL (in) an und auf der rechten Seite die Zielurl (out). Als Trenner kommt zwischen in und out >>> rein.
Die eingehende URL kann irgendwas sein, das spielt keine Rolle. Wichtig ist nur, dass die eingehende URL durch .htaccess an die index_controller.php weitergeleitet wird und das Plugin aus der Zielurl eine im CMS vorhandene Seite ermitteln kann.

Wird die neue Seite angezeigt, wenn du sie über den Browser aufrufst?

Gruß
xmurrix

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

Beitrag von tono » Di 10. Jun 2008, 18:56

@Steffen44:

Versuch es mit einer RewriteRule und nicht mit einem Redirect. Als erste RewriteRule schreibst Du

Code: Alles auswählen

RewriteRule (.*)\.htm $1.html
Ist ungetestet und aus dem Gedächtniss. Der Sinn ist: Alles was irgendwie .htm heißt wird ab jetzt unter dem Namen .html gesucht. Schau Dir notfalls die Apache-Doku an, ich glaube ein solcher Fall ist dort besprochen.
Bis dann
Tono

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

Beitrag von xmurrix » Di 10. Jun 2008, 21:26

Steffen44 hat geschrieben:...Und habe den zweiten Artikel im Startartikel verlinkt. Wenn ich den Link im TinyMCE einfüge dann macht er automatisch aus dem php link einen html Link. Rufe ich diesen Link dann im Frontend auf funktioniert dieser nicht.
Was passiert denn genau, landest du auf einer selber definierten Fehlerseite oder gibt es einen 404er Fehler?
Sämtliche Links werden normalerweise umschrieben, auch die über wysiwyg gesetzten internen Links.
Steffen44 hat geschrieben:Ich habe die einfachsten Einstellungen gewählt. Das Mod Rewrite Plugin generiert mir nun "meineseite.htm".
Wie sehen die Plugineinstellungen bei dir aus, wo ist die .htaccess und hast die Inhalte in der .htaccess geändert?

Ohne diese Infos ist es etwas schwierig, ein vorandenes Problem einzukreisen.

Gruß
xmurrix

Steffen44
Beiträge: 134
Registriert: So 12. Dez 2004, 12:18
Kontaktdaten:

Beitrag von Steffen44 » Mi 11. Jun 2008, 06:00

ja ich lande auf der vorher definierten Fehlerseite.

die .htaccess ist im root pfad und sieht momentan so aus :

Code: Alles auswählen

# PHP 5 einschalten
AddHandler x-mapp-php5 .php


#ModRewrite Aktivieren
<IfModule mod_rewrite.c>
RewriteEngine on

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


# Exclude some files and directories from rewriting
# -------------------------------------------------
RewriteRule ^usage/.*$ - [L]
RewriteRule ^contenido/.*$ - [L]
RewriteRule ^contenido.*$ - [L]
RewriteRule ^cms/upload/.*$ - [L]
RewriteRule ^cms/Bilder/.*$ - [L]
RewriteRule ^cms/test/.*$ - [L]
RewriteRule ^cms/index_controller.php.*$ - [L]
RewriteRule ^cms/front_content.php.*$ - [L]


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


</IfModule>
Die Einstellungen für das Mod Rewrite Plugin sind:

-Pfad zur .htaccess Datei aus Sicht des Web-Browsers : /
-Sollen die URLs klein geschrieben werden? - JA
-Sollen die Kategorien und Artikel als eine HTML Ressource geschrieben werden, ohne Verzeichnisstruktur? JA
- Dateiendung am Ende der URL ".htm" (.htm zumindest momentan noch ich will es noch auf .html umstellen )

- Zeitpunkt zum Generieren der URLs > Bei der Ausgabe des HTML Codes der Seite


Alle weiteren Einstellungen sind die Standart Einstellungen.


Ich habe das CMS Verzeichnis in den Root gepackt in der .htaccess stehen jetzt aber noch viele Pfade mit "RewriteRule ^cms/" muß ich dort das Verzeichniss "CMS" noch entfernen. In der Beschreibung war jedenfalls immer nur die Rede davon das RewriteBase anzupassen und das habe ich gemacht.

Code: Alles auswählen

# 301 = moved permanently
Redirect 301 /alte-seite.htm http://domain.tld/neueseite.html 
Das Redirect hat nun auch funktioniert besten Dank für den Tip.


@tono

Code: Alles auswählen

RewriteRule (.*)\.htm $1.html
Hat erstmal nicht funktioniert aber ist sicherlich der richtige Ansatz. Ich muß mal nach der genauen Syntax recherchieren. Es kann auch sein das etwas gesondere Einstellungen auf den 1und1 Servern gelten zumindest habe ich schon gelesen das es da mehrere Schreibweisen gibt und nur ein paar haben funktioniert.



Gruß
Steffen

Edit :

Ich habe noch etwas herausgefunden wie man einen zweiten Artikel ansprechen kann ohne das die Fehlerseite angezeigt wird. Es funktioniert wenn ich den Kategorienamen "Kategoriename.meineseite.htm" eingebe. Ohne den Kategorienamen habe ich keinen Zugriff auf die Seite und lande wieder auf der Fehlerseite.

Am liebsten wäre es mir wenn es auch ohne die Kategorie funktionieren würde aber es ist zumindest erstmal eine Lösung mit der ich leben kann.

Ebenfalls nicht möglich ist wenn ich mir nur per Mod Rewrite die Artikelnamen (ohne die Kategorienamen) ausgeben lasse, dann funktioniert das Mod Rewrite nicht mehr für die Unterkategorie.

Meine Kategoriestruktur ist dabei ganz einfach gewesen:

Hauptkategorie
|
-> Kategorie 1 -> Unterkategorie
-> Kategorie 2
-> Kategorie 3
usw.

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

Beitrag von xmurrix » Mi 11. Jun 2008, 21:38

Die Einstellungen machen insgesamt einen guten Eindruck, ich kann da keine Probleme erkennen.
Steffen44 hat geschrieben:... in der .htaccess stehen jetzt aber noch viele Pfade mit "RewriteRule ^cms/" muß ich dort das Verzeichniss "CMS" noch entfernen...
Wenn das Mandanten-Verzeichnis das wwwroot ist, kanst du die "cms/" aus den rewrite Regeln entfernen.

Steffen44 hat geschrieben:...Ich habe noch etwas herausgefunden wie man einen zweiten Artikel ansprechen kann ohne das die Fehlerseite angezeigt wird. Es funktioniert wenn ich den Kategorienamen "Kategoriename.meineseite.htm" eingebe. Ohne den Kategorienamen habe ich keinen Zugriff auf die Seite und lande wieder auf der Fehlerseite....
Das Plugin ist bei dir so eingestellt, dass die Kategorien und Artikel als eine HTML-Ressource ausgegeben werden. Das Trennzeichen zwischen Kategorie und Artikel das Zeichen ".", daher funktioniert es mit "Kategoriename.meineseite.htm". Das sollte vom Plugin schon automatisch so generiert werden.

Steffen44 hat geschrieben:...Am liebsten wäre es mir wenn es auch ohne die Kategorie funktionieren würde aber es ist zumindest erstmal eine Lösung mit der ich leben kann....
Wenn du in der URL keine Kategorienamen haben willst, müsstest alle Artikel innerhalb der Hauptkategorie anlegen, ohne weitere Kategorien.

Steffen44 hat geschrieben:...Ebenfalls nicht möglich ist wenn ich mir nur per Mod Rewrite die Artikelnamen (ohne die Kategorienamen) ausgeben lasse, dann funktioniert das Mod Rewrite nicht mehr für die Unterkategorie.

Meine Kategoriestruktur ist dabei ganz einfach gewesen:

Hauptkategorie
|
-> Kategorie 1 -> Unterkategorie
-> Kategorie 2
-> Kategorie 3
usw.
Das geht leider nicht, das Plugin ist nicht in der Lage, die URLs zum Artikel zu generieren und dabei die Kategoriestruktur zum Artikel auszulassen. Wie oben beschrieben, würde das momentan nur dann funktionieren, wenn alle Artikel direkt in der Hauptkategorie angelegt werden:

Hauptkategorie
-> artikel_a
-> artikel_b
usw.

Gruß
xmurrix

jdstrike
Beiträge: 52
Registriert: Di 18. Dez 2007, 14:55
Kontaktdaten:

Beitrag von jdstrike » So 15. Jun 2008, 14:50

so mal seid langem wieder einmal zeit gefunden, als nochmals danke xmurrix es klappt soweit, alle alten Problem sind behoben ;)

nun zu einem neuen: (ich denke zumindest das es eins ist ;) )

es hängt mit dem Druckmodul mit Druckvorschau von schlaucher zusammen

http://www.contenido.de/forum/viewtopic.php?t=14582

das js holt sich den artikel und öffnet ihn in einem neuen fenster mit neuem css

Code: Alles auswählen

<a href="javascript:;" onclick="MM_openBrWindow(\'http://'.$SERVER_NAME.$SCRIPT_NAME.'?idcatart='.$MOD_DV_sel_idcatart.'&cms_idcatart='.$idcatart.'&cms_idcat='.$idcat.'\',\'\',\'resizable=yes, scrollbars=yes, width=700, height=750\')"  style="font-size:10px;"><img style="border-style:none; margin-top:-2px" src="images/printer-blue.gif" width="14" height="14" alt="Druckvorschau" title="Druckvorschau"/>Druckvorschau</a></div>
generieren tut er zum Beispiel den hier:

Code: Alles auswählen

http://www.???.de/cms/cms/index_controller.php?idcatart=107&cms_idcatart=42&cms_idcat=52
und ich bekomm immer nur die interne Mandatenfehlerseite im neuen Fenster angezeigt.

nur kurz: ja es funktioniert wenn mod rewrite ausgeschaltet ist.

Ne Idee?

LG
jdstrike

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

Beitrag von xmurrix » So 15. Jun 2008, 18:02

jdstrike hat geschrieben:...es hängt mit dem Druckmodul mit Druckvorschau von schlaucher zusammen

http://www.contenido.de/forum/viewtopic.php?t=14582

das js holt sich den artikel und öffnet ihn in einem neuen fenster mit neuem css

Code: Alles auswählen

<a href="javascript:;" onclick="MM_openBrWindow(\'http://'.$SERVER_NAME.$SCRIPT_NAME.'?idcatart='.$MOD_DV_sel_idcatart.'&cms_idcatart='.$idcatart.'&cms_idcat='.$idcat.'\',\'\',\'resizable=yes, scrollbars=yes, width=700, height=750\')"  style="font-size:10px;"><img style="border-style:none; margin-top:-2px" src="images/printer-blue.gif" width="14" height="14" alt="Druckvorschau" title="Druckvorschau"/>Druckvorschau</a></div>
generieren tut er zum Beispiel den hier:

Code: Alles auswählen

http://www.???.de/cms/cms/index_controller.php?idcatart=107&cms_idcatart=42&cms_idcat=52
und ich bekomm immer nur die interne Mandatenfehlerseite im neuen Fenster angezeigt.

nur kurz: ja es funktioniert wenn mod rewrite ausgeschaltet ist.

Ne Idee?

LG
jdstrike
Hallo,

die URL wird im Druckmodul zusammengestellt mit:

Code: Alles auswählen

'http://'.$SERVER_NAME.$SCRIPT_NAME.'?idcatart='.$MOD_DV_sel_idcatart.'&cms_idcatart='.$idcatart.'&cms_idcat='.$idcat
Da das Script ($SCRIPT_NAME) nicht mehr front_content.php ist, sondern index_controller.php, kriegst du dann auch das Ergebnis:

Code: Alles auswählen

http://www.???.de/cms/cms/index_controller.php?idcatart=107&cms_idcatart=42&cms_idcat=52
Warum im Modul die volle URL inkl. Protokoll, Host und mit $SCRIPT_NAME zusammengebaut wird, kann ich nicht sagen, da hat sich der Autor bestimmt etwas dabei gedacht.

Normalerweise reicht es vollkommen aus, wenn die internen Links - wie in Contenido üblich - folgendermaßen zusammengestellt wird:

Code: Alles auswählen

'front_content.php?idcatart='.$MOD_DV_sel_idcatart.'&cms_idcatart='.$idcatart.'&cms_idcat='.$idcat
Das Plugin umschreibt keine URLs, die mit 'http://' oder mit '/cms/' beginnen, sondern nur URLs die folgenden Aufbau haben:

Code: Alles auswählen

// strings mit "front_content.php?..." oder 'front_content.php?...'
// beispiele

<a href="front_content.php?...">foo</a>

<a href='front_content.php?...'>bar</a>

<form action="front_content.php=?...">

<input type="button" onclick="myFunc('front_content.php=?...')"

usw...
Genauer gesagt, wird alles, das im HTML-Code folgendem Regex-Pattern entspricht, umschrieben:

Code: Alles auswählen

"/(["|\'|=])front_content\.php(.?|.+?)(["|\'|>])/i"
Daher kann es bei manchen Modulen nicht funktionieren, die die Ausgabe der internen Links etwas anders handhaben.

Gruß
xmurrix

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

Beitrag von Supporter » Mo 16. Jun 2008, 00:28

Die Erweiterungen in diesem ModRewrite Release sind ja der Wahnsinn! Echt obergenial, vielen Dank für die Überarbeitung und Bereitstellung!
Ειμαστε στη μεση απο κατι...

baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

301 Weiterleitung

Beitrag von baumpaul » Di 17. Jun 2008, 08:07

Um Seiten mit und ohne www zu verhindern wollte ich in die .htaccess eine 301er weiterleitung einbauen.

Am besten ist es wenn man auf http://domain.tdl oder http://www.domain.tdl geht auf http://www.domain.tdl/ersteebene.html weiterleitet.

Dabei ist mir eigentlich egal ob ich einmalig den Pfad einstellen muss.

victor
Beiträge: 70
Registriert: Mo 27. Jan 2003, 08:54
Wohnort: Kassel
Kontaktdaten:

3- 4- Kategoriebene - falscher Link

Beitrag von victor » Mi 18. Jun 2008, 19:16

Hallo erstmal miteinander und vielen Dank an xmurrix für den super Support und vor allem für die Mod Rewrite version.

Aber wie es so ist habe ich ein Problem.

Release: 4.8.6 - Bestehende Installation mit 370 Seiten und 5 Mandanten
plugin_advanced_mod_rewrite_0.3.0

Und zwar habe ich in der Kategorie 3 Ebenen (Unterbäume / Unterkategorien) angelegt also Beispiel

Hauptmenu
  • 1.0 Wir-ueber-uns
    1.0.1 Portraits-der-Partner
    1.0.1.1 Standorte

Innerhalb der Kategorie Standort liegen die einzelnen Profile/Artikel der Partner.
Der Link sieht dann in etwa so aus den das Modul generiert.

http://www.domain.de/Wir-ueber-uns/Port ... uster.html

Leider scheint es so als ob das mod rewrite 0.3.0 nicht die Möglichkeit hat bis in die 3. Ebene die Links aufzulösen, denn man wird dann auf die Fehlerseite geleitet.Wenn ich den gewünschten Partner Hans-Muster eine Ebene höher schiebe sprich den Artikel verschiebe auf

http://www.domain.de/Wir-ueber-uns/Port ... uster.html

dann funktioniert der Link einwandfrei.

xmurrix weist du Rat wo man das Modul auf 3 bzw. 4 Ebene erweitern kann ?.

Gruss VIC
"Niemand weiss mehr als alle zusammen"

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » Mi 18. Jun 2008, 19:29

Release: 4.8.6 - Bestehende Installation mit 370 Seiten und 5 Mandanten
plugin_advanced_mod_rewrite_0.3.0
Soweit ich weis ist die 0.3.0 nur für die 4.8.4 und nicht für die 4.8.6. Da hat sich in den Dateien einiges geändert und es kann sein das du dann diese änderungen nicht hast.
Und zwar habe ich in der Kategorie 3 Ebenen
Bist du dir da sicher das es an dem MR-Plugin liegt? Soweit ich weis ist zum Beispiel die StandartNavi von Contenido von vornherein erst einmal auf 3 Ebenen angelegt.
Ich selbst habe bei mir eine DHTML-Navi und kann da 4 oder 5 Ebenen ohne Probleme mit dem MR Plugin nutzen.

victor
Beiträge: 70
Registriert: Mo 27. Jan 2003, 08:54
Wohnort: Kassel
Kontaktdaten:

Ja bin mir sicher

Beitrag von victor » Mi 18. Jun 2008, 19:39

Hi ja ich bin mir sicher das es an der Tiefe der Kategorien liegt. Weil wenn ich mod write ausschalte dann funktioniert das ganze "wie immer".

Es ist auch egal, ob es von dem Modul Navigation ausgegeben wird oder durch die Artikelliste, wenn die Artikel zu Tief in der Struktur liegen, dann gibt es wohl probleme - Klar kann auch jetzt an der 4.8.6 Version liegen die sich nicht mit der 0.03 Mod verträgt.

Gruss VIC
"Niemand weiss mehr als alle zusammen"

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » Mi 18. Jun 2008, 20:23

ich habe heute den ganzen Tag bei meinen Kunden die 4.8.6 installiert und dafür das MR auch gebraucht. Hab daher die aktuelle Version 0.3.0 von http://www.purc.de/contenido_plugin_adv ... a.109.html einmal an die Contenido 4.8.6 angepasst und bei mir und meinen Kunden läuft das soweit prima. Es waren unter anderen auch Änderungen in der front_content.php und der front_crcloginform.inc.php.

Hab die von mir angepasste Version für die 4.8.6 jetzt einmal online gestellt. Kannst sie ja einmal ausprobieren.

edit: Hab Link entfernt da das Plugin für die 4.8.6 nun auch auf der Seite von xmurrix zum Download bereit steht

Wenn man schon vorher die 0.3.0 installiert hatte, dann das Update auf die 4.8.6 gemacht hat, muss man unbedingt noch einmal das Pluginsetup aufrufen, also

Code: Alles auswählen

http://www.domain.de/contenido/plugins/mod_rewrite/install.php
und dann nach dem Login auf Update gehen. Ansonsten funktionieren die Alias beim Ändern oder Neuanlegen nicht mehr.

Die Dateien im Paket mit *(2).* sind die originalen Dateien ohne MR, halt nur umbenannt.

@xmurrix
ich hoffe das es für dich ok ist. Ich hatte wie gesagt nur sehr schnell eine Lösung benötigt und wenn dich das stört nehme ich den Download auch gern wieder weg.[/i]
Zuletzt geändert von yodatortenboxer am So 22. Jun 2008, 13:29, insgesamt 2-mal geändert.

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

Beitrag von xmurrix » Mi 18. Jun 2008, 22:00

@xmurrix
ich hoffe das es für dich ok ist. Ich hatte wie gesagt nur sehr schnell eine Lösung benötigt und wenn dich das stört nehme ich den Download auch gern wieder weg.
Ich habe in keinster Weise ein Problem damit, wenn auch Andere ihren Beitrag dazu leisten.

Leider komme ich zur Zeit nicht dazu, das Plugin auf die 4.8.6er Version anzupassen, daher ist mir - sicherlich auch der Community - dein schneller Einsatz sogar recht.

Gruß
xmurrix

Gesperrt