Seite 1 von 1

Eine Frage zu mod_rewrite

Verfasst: 22.11.2012, 21:17
von Maik20
Hallo,

ich versuche mich gerade an einer RewriteRule. Ich möchte das alle URLs, die mit /cms/ anfangen geprüft werden, ob diese mit .html enden. Wenn nicht soll auf die .html Fassung umgeleitet werden.

Also
www.example.tld/cms/asda/asdasd/asd/asd => www.example.tld/cms/asda/asdasd/asd/asd.html

www.example.tld/cms22/asd => ändert sich nicht

Dazu habe ich einmal folgendes versucht:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/cms(/.*)?$ [NC]
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteRule ^(.*)$ $1.html [L]
Leider ohne erfolg. Was mache ich falsch?

Danke

Maik

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Re: Eine Frage zu mod_rewrite

Verfasst: 23.11.2012, 10:21
von Melegrian
Bei der ersten Kondition dürfte es egal sein, ob Du ? fragst, ob ein / und kein oder beliebig viele Zeichen folgen, da ja * schon den Spielraum beliebig groß lässt. Ist jedoch noch kein Fehler. Vor $1 hast Du aber kein Verzeichnis angegeben. Also, ausgehend vom Stammverzeichnis / sollte es dann mit /$1 richtig sein. Ich würde es so schreiben:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/cms(.*)$ [NC]
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteRule ^(.*)$ /$1.html [L]
Oder in dieser Variante, die erste Variante sollte jedoch gut sein:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/cms(.*)$ [NC]
RewriteCond %{REQUEST_URI} !^(.*)\.html$ [NC]
RewriteRule ^(.*)$ /$1.html [L]

Verfasst: 23.11.2012, 14:46
von Maik20
Besten Dank,

ich habe deine erste Variante jetzt eingebaut funktioniert jetzt perfekt!