Jörg Reinholz: htaccess hotlinken verhindern "blacklist" aber bild mit übergebe

Beitrag lesen

RewriteRule .(gif|jpg|GIF|JPG|png|PNG)$ http://www.example.org/anderes-bild.php [R,L]

Das ist ungünstig, weil es einen neuen Request auslöst und dann die von dedlfix beschriebenen Probleme auftreten.

Entweder Du notierst (und das ist in Deinem Fall die beste Lösung)
<IfModule rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule .(gif|jpg|GIF|JPG|png|PNG)$ /anderes-bild.php [L]
</IfModule>

(gibst den Pfad zum Skript ohne Protokoll und ohne Servername an und vermeidest das [R] für den Redirect)

... und kannst in Deinem Skript $_SERVER["REQUEST_URI"] auswerten

============================================================
Achtung! Das Folgende außer zu Testzwecken nicht nachmachen!

... oder Du hängst die ursprüngliche Adresse mit an den neuen Request:
<IfModule rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^(.*(gif|jpg|GIF|JPG|png|PNG))$ http://localhost/test.php?pic=$1 [L]
</IfModule>

... umd dann $_GET['pic'] auszuwerten. Das ist aber so nötig wie nach einem Spaziergang an der Sonne die Jacke in der einzigen Absicht, sie dann zu trocknen, nass zu machen.

Unter der URI http://httpd.apache.org/docs/current/mod/mod_rewrite.html ist ein ganz brauchbares Handbuch zu finden.

Das "<IfModule rewrite.c>" dient dazu, dass Du Dir nicht den gesamten Server lahm legst (Es kommt dann nur "Error 500", wenn das Modul rewrite nicht installiert oder aktiviert ist.

Jörg Reinholz