2012-03-27 16 views
1

Ich wurde diese Neuschreibung gezeigt, um Bilder auf eine bestimmte Webseite umzuleiten. Und es ermöglicht die Verwendung von Bildern auf meiner Website und anderen..htaccess: Image Redirect

Das funktioniert gut, wenn ich versuche, direkt auf ein Bild von der Adressleiste zuzugreifen, und ich sehe gerade meine Website. Das Problem, das ich bemerkt habe ist, wenn ein Benutzer schreibt auf einer anderen Website einen Link aus:

<a href="http://www.sitename.com/uploads/123-Charizard.png">Click</a> 

Es sie zu diesem Bild nehmen, nicht auf der Seite.

Welche Änderungen sollte ich an der Neuschreibung vornehmen, damit der Benutzer zur/view/-Seite weitergeleitet wird?

BEARBEITEN: Eine andere Sache, die ich bemerkt habe, ist, wenn ein Bild auf Facebook gepostet wird, das oben genannte Rewrite verwendend, wird es das thumbnail wie es einmal tat nicht anzeigen. Ich nehme an, das ist etwas, woran man nicht arbeiten kann?

Antwort

0
RewriteCond %{HTTP_REFERER} ^$ [OR] 
RewriteCond %{HTTP_REFERER} !^http://domain.com 
RewriteCond %{REQUEST_URI} ^/uploads/(\d+)-(.+)\.(png|gif|jpe?g|bmp)$ [NC] 
RewriteRule (.*) http://domain.com/view/%1-%2/ 

Für verhindern Caching:

<filesMatch "\.(png|jpeg|jpg|gif)$"> 
Header unset ETag 
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" 
Header set Pragma "no-cache" 
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" 
</filesMatch> 
+0

Was passiert, wenn ich das Bild direkt zugreifen (öffnen neue Fenster, Einfügen Link in der Adressleiste, geht Hit), es nimmt mich auf das Bild. Aber wenn ich wieder gehe, lenkt es mich auf die Seite/view/um. Wie kann ich es das erste Mal umleiten lassen? – Aaron

+0

das erste Mal, Browser laden Bilder aus dem Cache, so kann nichts tun, außer Hinzufügen von 'Cache-Control-, aber das erhöht die verwendete Bandbreite! – undone

+0

Wie kann ich das hinzufügen? Und um wieviel erhöht es meine schlechte Breite? – Aaron