2012-03-26 7 views
0

Auf meiner Webseite habe ich Links zu Bildern wie folgt aus:Wie ändere ich Bildordner mit mod_rewrite?

img/123456765/mypicture.jpg (<img src="img/123456765/mypicture.jpg" />) 
img/2534/anotherpicture.jpg 

wo Anzahl Ordner zum Beispiel LastModified Zeit der Bilddatei in Sekunden strtotime (Dateizeit (mypicture.jpg)). Sie sind virtuelle Pfade für die Aktualisierung des Browser-Caches, keine echten Pfade.

Ich möchte Apache automatisch diese Verbindungen zu URLs wie diese ändern:

img/mypicture.jpg 
img/anotherpicture.jpg 
Grundsätzlich

, würde ich diese Zahl Ordner in Image-Pfad beseitigen möchte.

mod_rewrite Anweisungen Ich versuche, sieht wie folgt zu konstruieren:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^img/([a-zA-Z0-9-_]+)/\.(jpg|jpeg|gif|bmp|png)$ img/ [L] 

Ich bin neu so mod_rewrite Ich bin nicht sicher, ob diese Anweisungen korrekt sind. Kann mich jemand korrigieren, wenn ich hier falsch liege? Ich würde es begrüßen! Vielen Dank!

Antwort

1

Sie sind auf dem richtigen Weg, aber Sie wollen etwas wie folgt aus:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^img/[a-zA-Z0-9-_]+/(.*\.(jpg|jpeg|gif|bmp|png))$ img/$1 [L] 

Die Regex ^img/[a-zA-Z0-9-_]+/(.*\.(jpg|jpeg|gif|bmp|png))$ hat eine Rückreferenzierung ($ 1), um das Spiel .*\.(jpg|jpeg|gif|bmp|png), im Wesentlichen alles nach der Reihe von Zahlen und Buchstaben nach das "img /". Dies wird umschreiben:

img/123456765/mypicture.jpg to img/mypicture.jpg 
img/2534/anotherpicture.jpg to img/anotherpicture.jpg 
+0

Vielen Dank, Jon! Es hat mir sehr geholfen! ^^ – Ksenia