Page 1 of 1

Mod Rewrite mit CMS Made Simple

Posted: Sat Jan 17, 2009 5:07 pm
by maninweb
Hallöchen zusammen...

ich experimentiere gerade im Rahmen meines Wissens mit dem Mod-Rewrite für das CMS herum.
Vorab meine Einstellungen in der config.php...

$config['assume_mod_rewrite'] = true;
$config['page_extension'] = '.html';
$config['internal_pretty_urls'] = false;
$config['use_hierarchy'] = true;
$config['query_var'] = 'page';

und in der htaccess Datei...

RewriteEngine On
RewriteBase /
:
:
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule ^(.+)$ index.php?page=$1 [QSA]

Es funktionniert zwar, jedoch fallen mir folgende Effekte auf...

- es werden die Aliase der Seiten genommen
- bei den News-Einträgen sind zwischen dem Root und dem Eintrag Verzeichnisse drin ...de/123/123/newseintrag.html

Meine Fragen...

- gibt es eine Möglichkeit statt der Aliase die Seitentitel zu verwenden? Die sind bei mir eindeutig.
  Oder hat vielleicht jemand das Modul im CMS umgeschrieben? (Ok, ich weiss, man hätte sich's
  vorher überlegen können und die Aliase anders benennen, hinterher ist man immer schlauer.
  Auch sollte ich die Aliase wegen Google nicht mehr ändern, oder?)
- kann man die Verzeichnisse bei den News - Seiten im Mod-Rewrite "wegparsen"?
  Es sind immer zwei: /123/123/

Danke für jede Hilfe und/oder Anregungen im voraus :-)

Gruß

Re: Mod Rewrite mit CMS Made Simple

Posted: Sun Jan 18, 2009 11:10 pm
by hibr
maninweb wrote: Hallöchen zusammen...

ich experimentiere gerade im Rahmen meines Wissens mit dem Mod-Rewrite für das CMS herum.

[...]

Es funktionniert zwar, jedoch fallen mir folgende Effekte auf...

- es werden die Aliase der Seiten genommen
- bei den News-Einträgen sind zwischen dem Root und dem Eintrag Verzeichnisse drin ...de/123/123/newseintrag.html

Meine Fragen...

- gibt es eine Möglichkeit statt der Aliase die Seitentitel zu verwenden? Die sind bei mir eindeutig.
  Oder hat vielleicht jemand das Modul im CMS umgeschrieben? (Ok, ich weiss, man hätte sich's
  vorher überlegen können und die Aliase anders benennen, hinterher ist man immer schlauer.
  Auch sollte ich die Aliase wegen Google nicht mehr ändern, oder?)
Ohne in den Core-Code von CMSms zu verändern sehe ich keine Möglichkeit. Ich würde die Aliase entsprechend ändern und ggf. für die Suchmaschinen entsprechende mod_rewrite Umleitungen zu den neuen URLs bauen. Etwa so:

Code: Select all

RewriteRule ^alter_alias1\.html$ /neuer_alias1.html [L,R=301]
RewriteRule ^alter_alias2\.html$ /neuer_alias2.html [L,R=301]
u.s.w.
Wenn du hierarchische URLs benutzt musst du die Verzeichnisse bei den Aliasen ggf. mit abgeben. Kann bei vielen Seiten aber viel Tipperei werden. Regular Expressions helfen hier leider nicht. Durch R=301 sollten die Suchmaschinen beim erneuten Indizieren dann auch die Adresse in ihre Datenbank updaten.

BTW: Solche Rules immer vor dem CMSms-Rewriting in die .htaccess Datei schreiben und natürlich nach RewriteEngine On.
- kann man die Verzeichnisse bei den News - Seiten im Mod-Rewrite "wegparsen"?
  Es sind immer zwei: /123/123/
Ich bin jetzt beileibe kein mod_rewrite Experte, habe das mal so versucht:

Code: Select all

RewriteRule ^news/[0-9]+/[0-9]+/(.+)$ /news/$1 [L, R]
schreibt zwar die URL in die gewünschte (ohne IDs) um, aber dann findet CMSms nicht die entsprechende News (Error 404), da Infos fehlen. Das muss man wohl im Code des News-Moduls ändern. Ich meine eine Codeänderungsbeispiel mal im englischen Forum gelesen zu haben. Bin mir aber nicht mehr sicher.

In der jetzigen Version (mit den beiden IDs) ist die URL aber immer eindeutig, egal wie man den Titel benennt.

Gruß Hani

PS: Mich stört noch ein bisschen, dass der in die URL eingebettete Titel in Groß und Kleinschreibung erscheint. Unschön ist das, wenn ein  Umlaut am Wortanfang steht. Der wird zwar entsprechend umschrieben (Ä->ae) aber immer in Kleinbuchstaben.

Re: Mod Rewrite mit CMS Made Simple

Posted: Mon Jan 19, 2009 6:22 am
by cyberman
maninweb wrote:   Auch sollte ich die Aliase wegen Google nicht mehr ändern, oder?)
Einfach ändern würde ich es nicht, sondern eine Weiterleitung einrichten.

Um es für eine größere Datenmenge handlich zu machen, kannst du dafür das Modul MovedPages verwenden (Übersetzung im Projekt German/Deutsch).

Re: Mod Rewrite mit CMS Made Simple

Posted: Tue Jan 20, 2009 11:56 am
by maninweb
Hallo zusammen...

vielen Dank für Eure hilfreichen Tipps. Ich werde es mal ausprobieren und dann hier berichten.

Falls es nicht geht, überlege ich, ob ich eine kleine Mappingtabelle in PHP implementiere, welches
mir die Links umwandelt. Bei mir müsste es gehen, da Aliase und Seitennamen eindeutig sind.
Mal schauen.

Gruß

Re: Mod Rewrite mit CMS Made Simple

Posted: Tue Jan 20, 2009 5:00 pm
by cyberman
maninweb wrote: eine kleine Mappingtabelle in PHP
http://dev.cmsmadesimple.org/projects/movedpages

Re: Mod Rewrite mit CMS Made Simple

Posted: Tue Jan 20, 2009 5:10 pm
by maninweb
Hi cyberman...

Danke für den Hinweis :D

Gruß

Re: Mod Rewrite mit CMS Made Simple

Posted: Tue Aug 04, 2009 8:28 am
by maninweb
Hi zusammen...

ich hab' mal den alten Thread hier herausgeholt. Habe seit nun einiger Zeit das Mod-Rewrite aktiv
und bin soweit auch ganz zufrieden; Google mag' mich jetzt auch ein bißchen mehr :-)

CMSMS verwendet ja bekanntlich die Seitenaliase für die pretty URL; das ist m.E. nicht ganz
optimal, deshalb:

Eine grundsätzliche Anregung hätte ich noch, könnte man in einer Folgeversion des CMS ein
Feld vorsehen, wo der User einen Pseudo-Alias eintragen könnte, der dann für die benutzer-
freundliche URL verwendet werden kann? Die die z.B. Wordpress > 2.x verwenden, werden
das sicherlich kennen, da gibt's für jeden Artikel eine eintragbare (Teil-)URL.

Grüße

Re: Mod Rewrite mit CMS Made Simple

Posted: Tue Aug 04, 2009 9:00 am
by antibart
maninweb wrote:
Eine grundsätzliche Anregung hätte ich noch, könnte man in einer Folgeversion des CMS ein
Feld vorsehen, wo der User einen Pseudo-Alias eintragen könnte, der dann für die benutzer-
freundliche URL verwendet werden kann? Die die z.B. Wordpress > 2.x verwenden, werden
das sicherlich kennen, da gibt's für jeden Artikel eine eintragbare (Teil-)URL.
Hm .. vielleicht verstehe ich dich miss ... aber default-mäßig wird ja der Menütext als alias übernommen, nur halt klein geschrieben und ohne Sonderzeichen, was ja schon sehr vernünftig ist. Der Alias ist aber ja nachträglich änderbar, also frei wählbar.

Wenn DU eine Seite erstellt mit dem Menütext "Meine Referenzen", dann heisst der alias zunächst auch "meine-referenzen". Den kannst Du im Reiter Optionen anpassen. zB in "referenzen-firmenname-hamburg" .. oder was auch immer. Und das erscheint auch in der URL.

Re: Mod Rewrite mit CMS Made Simple

Posted: Tue Aug 04, 2009 9:12 am
by NaN
maninweb wrote: CMSMS verwendet ja bekanntlich die Seitenaliase für die pretty URL; das ist m.E. nicht ganz
optimal
Wieso nicht?
Die sind eindeutig und enthalten keine Sonderzeichen.
Und wie Antibart schon sagte kann man das Alias frei wählen.
Nicht nur nachträglich, sondern auch gleich beim Erstellen der Seite.
Die sind sogar "Pflichtfelder", wenn man in der config.php auto alias auf false setzt.
Bei auto alias wird der Menutext als alias verwendet.
Besser gehts doch kaum, um eine Seite irgendwie zu "kennzeichnen".

Wenn es dazu noch ein extra Feld gibt, dann muss dieses ja auch wieder geprüft werden, ob es schon irgendwo verwendet wurde, weil sonst gibts es dieselbe pretty URL für zwei unterschiedliche Seiten.
Das wäre echt doppelt gemoppelt.

Re: Mod Rewrite mit CMS Made Simple

Posted: Tue Aug 04, 2009 10:07 am
by maninweb
Hi zusammen...

Danke für die Rückmeldungen, also nicht dass ihr mich missversteht, ich wollte jetzt nicht meckern  ;)
Ich versuche mal zu erläutern, wieso ich auf die Idee gekommen bin.

Richtig, der Alias wird beim Anlegen einer Seite Defaultmäßig gesetzt, wie ihr beschrieben habt.
Da aber oft auf meiner Seite derselbe Menütext in Unterseiten vorkommt, ergaben sich damals (CMSMS 1.0)
bei der automatischen Erstellung der Aliase wie "Berichte", "Berichte-2", usw.; somit habe ich damals allen Seiten
erstmal eigene Aliase vergeben (ich muss sagen, damals aber Mod-Rewrite nicht berücksichtigt zu haben).

Später kam der Gedanke auf, die Site auch in anderen Sprachen zu publizieren, was dazu geführt hat, dass
ich Abschnittsüberschriften für DE, EN und FR angelegt habe und in den jeweiligen Unterbäumen diesselbe
Struktur habe. Jedes Alias hat dann einen Präfix für die Sprache, z.B. de_home, en_home und fr_home
erhalten.

Dieses Präfix lässt sich dann übrigens mit Smarty prima auslesen, was ich z.B. in Templates mache und
somit einige von denen einsparen konnte. Wenn man das Mod-Rewrite einschaltet, erhält man nun...

server/de/de_home.html, server/en/en_home.html und server/fr/fr_home.html

Ich finde das mit den Unterverzeichnis im Mod-Rewrite sehr sinnvoll, also /de/, /en/ und /fr/. Würde
mein Alias nun home heißen (was m.E. logisch für den Betrachter wäre), würde das nicht mehr funktionieren,
denn dann hätten jeweils die Home-Seite denselben Alias. Das Beispiel würde auch für andere Seiten bzw.
Unterseiten gelten.

Gruß