Hotlinking verhindern

Beim Hotlinking werden Bilder, die auf einem anderen Server liegen, auf einer Webseite eingebunden. Hat man ein Projekt mit vielen Bildern, kann das Einbinden der eigenen Bilder in fremden Foren, Communities etc. erheblichen Traffic verursachen. Ein Projekt von mir hat gute Platzierungen in der Google Bilder-Suche und dadurch werden meine Bilder sehr oft unerlaubterweise auf fremden Webseiten eingebunden.

Hotlinking kann man aber ganz einfach verhindern. Am Besten ist dies über die .htaccess zu erreichen. Dazu muss eine Datei mit dem Namen „.htaccess“ im Root-Verzeichnis angelegt werden. Folgende Code-Schnipsel zeigen die verschiedenen Möglichkeiten:

Möglichkeit 1

Ich möchte alle Webseiten das Hotlinking verbieten außer der Google Bilder-Suche. Um den möglichst geringsten Traffic zu erzeugen, liefere ich ein rotes X aus (es wird kein Bild angezeigt). Bei „sfrisch“ muss natürlich die eigenen Webseite eingetragen werden.


RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?sfrisch\.de(/.*)?$ [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteRule \.(gif|jpg|GIF|JPG|png|PNG)$ - [F]

Möglichkeit 2

Ich möchte alle Webseiten das Hotlinking verbieten außer der Google Bilder-Suche. Ich liefere stattdessen ein anderes Bild aus, um zu zeigen, dass ich Hotlinking nicht erlaube oder einfach um mein Logo einzublenden. Bei „sfrisch“ muss natürlich die eigenen Webseite eingetragen werden. Wichtig ist hier, dass das Bild nicht eine Dateiendung hat, die wir zuvor verboten haben. Hier ist .gif und .GIF verboten, aber .giF funktioniert noch. Diese Dateiendung muss das Bild haben, das stattdessen angezeit werden soll.


RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?sfrisch\.de(/.*)?$ [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteRule \.(gif|jpg|GIF|JPG|png|PNG)$ http://www.sfrisch.de/anderes-bild.giF [R,L]

Möglichkeit 3

Ich verbiete nur ausgewählten Webseiten das Hotlinking. Alle Anderen dürfen Hotlinking betreiben. Den gesperrten Webseiten wird eine Ersatzgrafik angezeigt. Bei „sfrisch“ muss natürlich die eigenen Webseite eingetragen werden. Bei „fremde-domain“, die zu blckierenden Webseiten. Wichtig ist hier die Dateiendung des Bildes (siehe dazu Erklärung bei Möglichkeit 2).


RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://www.fremde-domain.de/.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://www.fremde-domain2.de/.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://www.fremde-domain3.de/.*$ [NC]
RewriteCond %{REQUEST_FILENAME} !anderes-bild.gif$
RewriteRule \.(gif|jpg|GIF|JPG|png|PNG)$ http://www.sfrisch.de/anderes-bild.giF [R,L]

Mehr Informationen zum Thema findet ihr auf trafficklau.de und A List Apart. Mit den oben beschriebenen Methoden kann man auch dem Traffic-Klau über die Google Suche entgegenwirken.

05. Januar 2010 von Sebastian

Kommentare (10)

  1. Wubndarbar !
    Vielen Dank für Super Anleitung und Erklärung. Es funkzioniert einwandfrei !

  2. Schön wenn ich jemanden helfen konnte. 🙂

  3. Mich würde noch interessieren ob es möglich wäre anstaat (gif|jpg|GIF|JPG|png|PNG) ALLE Datei im Verzeichnis zu schützen.

    Und was musste man da eintragen ?
    Dankeschön !

  4. Hallo,

    wenn du für alle Dateien vor einem Zugriff schützen lassen willst, musst du folgendes in die .htaccess schreiben:

    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/hierderordner
    RewriteRule ^.* – [F]

    Oder du suchst mal nach .htaccess Verzeichnisschutz.

  5. Aber wenn ich das mache dann kann ich auch nicht von meine eigene Seite verlinken
    Error 403

  6. Achso jetzt hab ich die Frage verstanden. Leider fällt mir da keine Lösung ein, ausser alle Dateiendungen anzugeben.
    Aber du kannst ja mal im Mod-Rewrite Forum nachfragen, dort sind die Spezialisten: http://www.modrewrite.de/foren/index.php

  7. Danke Sebastian, werde ich machen…
    Mir geht es nur drum die Index.php Datei vom Hotlinking zu schützen.
    Das blöde ist das es eine index.php ist und selbst wenn ich .php schutze, es reicht ein link auf http://www.domain.de/geschuetze_ordner/ und der jenige bekommt automatisch index.php angezeigt.
    Trotzdem vielen Dank, bin mit deiner Lösung oben vollkommen zufrieden und danke das Du so was in Web veröffentlicht hast !

    Gruss Samko

  8. Danke für den Beitrag und den rettenden Hinweis, dass die Dateiendung nicht verboten sein darf. Habe schon die ganze Zeit rumprobiert…

  9. Danke!
    Das war sehr hilfreich.

  10. Pingback: Lenteen Erfahrung - Seite 2 - Android-Hilfe.de

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert