Noch eine Frage zu den rewrite-Anweisungen in .htaccess
Gustav
- webserver
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
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/... ???
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
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
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.