Gustav: Noch eine Frage zu den rewrite-Anweisungen in .htaccess

Hallo!
Noch eine Frage zu den rewrite-Anweisungen in .htaccess
Ich verwende im Moment folgende RewriteRule:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$    /main.php

Was muß ich einfügen, damit .jpg-Dateien die es am angegebenen Pfad nicht gibt, statt dessen im Verzeichnis /bilder gesucht werden?

RewriteRule ^.jpg$ /bilder/...  ???

Grüße
Gustav

  1. Zusatzfrage: Wenn der Server nicht nur bei jpg-Dateien, sondern auch .gif und .png Dateien so vorgehen soll, ist es dann besser, für jede Endung eine eigene Rewrite-Regel zu schreiben? Oder kann man dass auch schreiben als

    Rewrite ^.[jpg|gif|png]$ /bilder/... ???

    1. Hello,

      Zusatzfrage: Wenn der Server nicht nur bei jpg-Dateien, sondern auch .gif und .png Dateien so vorgehen soll, ist es dann besser, für jede Endung eine eigene Rewrite-Regel zu schreiben? Oder kann man dass auch schreiben als

      Rewrite ^.[jpg|gif|png]$ /bilder/... ???

      auf jeden Fall keine eckigen Klammern, sondern runde benutzen

      http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond

      Es lohnt sich bestimmt, sich alle Rewrite-Direktiven mal anzugucken. Da gibt es noch mehr nette Sächelchen.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Dort gibt es das Beispiel:
        RewriteRule ^/(.*.(png|gif|jpg)) http://${servers:static}/$1 [NC,P,L]

        Also ergäbe das dann
        RewriteRule ^/(.*.(png|gif|jpg)) http://bilder/$1 [L]

        1. Woher weiß das Programm, dass bei "^/" nach dem letzten "/" in der URL gesucht wird?

        2. Kann ich bei der umgeschriebenen Adresse statt $1 auch %{REQUEST_URI} verwenden? Einfach anhägnen hat nicht funktioniert.

        RewriteRule ^/(.*.(png|gif|jpg|jpeg)) /bilder%{REQUEST_URI} [L]

        Leider ergibt beides nur einen Fehler:
        "Error 500 - Internal server error

        Ein interner Fehler ist aufgetreten!
        Bitte versuchen Sie es zu einem späteren Zeitpunkt."

        3. Und wenn es die Datei aber im Verzeichnis /bilder auch nicht gibt, wird dann nicht eine Endlosschleife erzeugt? Kann man das auch verhindern?

        Gruß
        Gustav

        1. Oben war ein kleiner Fehler beim Copy und Paste.
          Probiert habe ich
          RewriteRule ^/(.*.(png|gif|jpg)) /bilder/$1 [L]
          und
          RewriteRule ^/(.*.(png|gif|jpg|jpeg)) /bilder%{REQUEST_URI} [L]

          Beides ergab oben genannten 500-Fehler.