berlinsurfer: mod_rewrite - regular expression

Beitrag lesen

Guckst du hier:

Das Muster soll nicht enthalten:

  • dynamisch.php
  • alles mit index im Namen

Zum ersten: warum ?
Zum zweiten: RewriteCond %{REQUEST_URI} !index

Das Muster soll enthalten:

  • alles was mit .htm, .html, usw. endet
  • keine Endung hat.

RewriteCond %[REQUEST_URI} (.html|.htm.|.php|.css)$ [OR]
RewriteCond %{REQUEST_URI} [^.]$

Zusammengesetzt sieht das dann so aus:

  
RewriteEngine On  
  
RewriteCond %{REQUEST_URI} !index  
RewriteCond %[REQUEST_URI} (\.html|\.htm\.|\.php|\.css)$ [OR]  
RewriteCond %{REQUEST_URI} [^.]$  
RewriteRule (.*) dynamisch.php [L]  
  

Hier einer meiner Versuche.
RewriteRule ^[^d][^y][^n][^a][^m][^i][^s][^c][^h][^\.][^p][^h][^p](.*)\.html$ /dynamisch.php?b=$1 [QSA]

Alles, was in eckigen Klammern steht, bezeichnet Zeichenklassen. Alles mit einem ^ davor, negiert diese. Das brauchst du in diesem Fall sicher nicht.
QSA bezeichnet den originalen Querystring, wenn du ihn veränderst, wird er auch so an dynamisch.php weiter gegeben.

Anmerkung noch: du musst Dir dann natürlich noch überlegen, was du mit Urls mit index machst.

--
Science flies you to the moon.
Religion flies you into buildings.
selfcode: ie:{ fl:| br:^ va:? ls:< fo:{ rl:( n4:{ ss:} de:[ js:} ch:{ sh:) mo:? zu:)