Home
Navigation
Impressum
SEO Welten - Webcoding, Editoren, Scripte und Anwendungen
SEO Welten
Buchempfehlungen
 

Rewrite Regeln und Bedingungen für die Auslieferung von Bildern

Konditionen für die Auslieferung von Fotos und sonstigen Grafiken

Übersicht / Seite:

  1. Hotlinking von Bildern (mit Beispielen für Gegenmaßnahmen)
  2. Text in Bilder einfügen (mit PHP, ImageTTFText und geeigneten Fonts)
  3. Rewrite Regeln (und Bedingungen für die Auslieferung von Images)
  4. Clientseitige Möglichkeiten (zum Austausch von Grafiken)
  5. Ein weiteres PHP-Script (zur Einfügung von sichtbaren Wasserzeichen)

Vorbemerkung / Hinweis: Cloaking mit Bildern

Die auf dieser Seite vorgestellten Rewrite-Regeln verhindern nicht die Auslieferung von Fotos und sonstigen Grafiken bei unautorisierten Anfragen, sondern dienen nur dazu, mit einem Script geänderte Grafiken auszuliefern. Diese Vorgehensweise wird als Cloaking bezeichnet, wenn sie gezielt dazu eingesetzt wird, den Besuchern einer Webseite andere Inhalte zu präsentieren, als den Crawlern (Bots) von Suchmaschinen.
Der Einsatz von Cloaking-Methoden widerspricht den Richtlinien für Webmaster von Google, Bing und sicherlich ebenso von anderen Suchmaschinen. Die Folge könnte eine Abwertung oder Entfernung aus dem Index der Suchmaschinen sein. Ob sich eine mögliche Abwertung oder Entfernung nur auf die nachträglich veränderten Bilder beziehen würde oder die bereitstellenden Seiten mit abgewertet oder aus dem Index entfernt werden, ist derzeit nicht bekannt (Stand: Februar 2013). Wir empfehlen aus den genannten Gründen, das Script und die entsprechenden Regeln nur für Testzwecke einzusetzen.
Ratsamer erscheint es monentan, es den Bilderdiensten gleichzutun und Wasserzeichen zu verwenden. Mit clientseitigen Lösungen könnten dann zum Beispiel Bilder ohne Wasserzeichen nachgeladen werden. Bei serverseitigen Lösungen würden Session-Cookies in Betracht kommen, die vergeben und abgefragt werden könnten, um Grafiken ohne Wasserzeichen auszuliefern.

Rewrite Regeln

Beim ersten Beispiel wird bei allen Aufrufen überprüft, ob ein Referrer übergeben wurde. Wurde kein Referrer übergeben, wird vom Nutzer unbemerkt das vorgestellte Script im Hintergrund geladen und ein bearbeitetes Images ausgeliefert. 

Erstes Beispiel:

RewriteEngine On

RewriteCond %{HTTP_REFERER} ^$ [NC]
RewriteRule ^(.+)\.(jpg|png)$ /images.php?image=$1&endung=$2 [NC,QSA,L]

Beim zweiten Beispiel wird nicht nur überprüft, ob ein Referrer übergeben wurde, sondern ob dieser Referrer mit der eigenen Domain übereinstimmt. Durch die Negation mit ! erfolgt der Aufruf des Scripts immer dann wenn die Überprüfung keine Übereinstimmung mit dem Suchmuster ergab.

Zweites Beispiel:

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com.*$ [NC]
RewriteRule ^(.+)\.(jpg|png)$ /images.php?image=$1&endung=$2 [NC,QSA,L]

Soll der ungehinderte Zugriff mehr als einer Domain gestattet werden, können die zusätzlichen Domains wie im dritten Beispiel mit aufgenommen werden. Bei diesem Beispiel würde bei Anfragen von example.net und example.com das jeweilige Bild ohne den Umweg über images.php ausgeliefert werden.

Drittes Beispiel:

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.net.*$ [NC]
RewriteRule ^(.+)\.(jpg|png)$ /images.php?image=$1&endung=$2 [NC,QSA,L]


Separates Verzeichnis für ausgewählte Fotos

Beispiel für gesperrtes VerzeichnisUnter Umständen sollen nicht alle Grafiken, sondern nur einige ausgewählte Fotos bei unautorisierten Zugriffen mit einem Vermerk oder Wasserzeichen gekennzeichnet werden. In diesem Fall würde es sich anbieten, das Script und eine htaccess-Datei zusammen mit den ausgewählten Fotos in ein separates Verzeichnis zu speichern. Diese Vorgehensweise hätte zusätzlich noch den Vorteil, dass kein Eintrag in der htaccess des Root-Verzeichnisses erforderlich ist.

Für das vierte Bespiel wurden einige Bilder in das Verzeichnis /gesperrte abgelegt. In diesem Verzeichnis wurde ebenfalls das Script gespeichert und eine htaccess-Datei mit folgenden Konditionen.

Viertes Beispiel:

RewriteEngine on

RewriteCond %{REQUEST_URI} ^.*/gesperrte/.*$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/.*$ [NC]
RewriteRule ^([^/]+)\.(jpg|png)$ /gesperrte/images.php?image=$1&endung=$2 [NC,QSA,L]

Es sei angemerkt, aus den durchgeführten Tests ergab sich, dass das Muster für RewriteRule nur auf den eigentlichen Namen der Datei zutreffen muss, nicht aber auf den ganzen Pfad. Der Pfad zum Script muss hingegen vollständig aufgenommen werden, falls der Pfad ab Root mit vorangestellten Schrägstrich (Slash) notiert wird. Ohne vorangestellten Schrägstrich sollte /gesperrte/ hingegen entfallen können.
Insofern alles richtig eingerichtet wurde und ein Image aus dem Verzeichnis aufgerufen wird, findet in der ersten Zeile eine Überprüfung statt, ob in der Request URI das Verzeichnis /gesperrte/ enthalten ist und in der zweiten Zeile wird an Hand des Referrers überprüft, ob der Zugriff nicht von den eigenen Seiten erfolgte, bevor das Script ausgelöst wird.
Weiterhin sei angemerkt, dass die erste Zeile entfallen kann, da bei einem Zugriff auf das Verzeichnis "gesperrte" praktisch "gesperrte" immer in der  Request URI enthalten ist. Wird die htaccess hingegen eine Ebene höher abgelegt, so muss der Name des Verzeichnisses bereits in der Rewrite Regel mit aufgenommen werden.

Beispiel:

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/.*$ [NC]
RewriteRule ^gesperrte/([^/]+)\.(jpg|png)$ /gesperrte/images.php?image=$1&endung=$2 [NC,QSA,L]


Cloaking vermeiden

Cloaking sollte sich vermeiden lassen, in dem den Besuchern der eigenen Seiten und den Bots von Suchmaschinen dieselben Inhalte geboten werden. Erreichen lässt sich dies über eine Abfrage des User Agents, wie im fünften Beispiel.

Fünftes Beispiel:

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.net.*$ [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*bot.*$ [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*slurp.*$ [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*mediapartners.*$ [NC]
RewriteRule ^([^/]+)\.(jpg|png)$ /gesperrte/images.php?image=$1&endung=$2 [NC,QSA,L]

Bei Verwendung des fünften Beispiels sollten bei Anfragen von example.net und example.com sowie bei den Anfragen der wichtigsten Bots von Google, Bing, Yandex und Yahoo die Bilder unverändert geladen werden, ohne dabei die images.php auszulösen. Da aber keine aus Langzeittests resultierenden Erfahrungen vorliegen, würden wir dennoch dazu raten, Script und htaccess-Regeln nur für Testzwecke oder wie im Beispiel, nur für ausgewählte Verzeichnisse zu benutzen.
Obwohl beim fünften Beispiel praktisch kein Cloaking im eigentlichen Sinne vorliegt, da Crawler und User die unveränderten und somit dieselben Bilder ausgeliefert bekommen, kann ein Rankingverlust oder eine Entfernung aus dem Index leider auch bei dieser Variante nicht völlig ausgeschlossen werden.

Text in Bilder einfügen « zurück / weiterlesen » Clientseitige Möglichkeiten

 
Navigation

Finden und
gefunden werden ...


- Optimierung -

 

Webcoding

Übersicht


Web Services


Tutorials &
diverse Listings

und vieles mehr...


XML


Copyright © 2006 - Verlag Horst Müller - Stendal | Datenschutz | Nutzungsbedingungen