SEO Welten
Buchempfehlungen
|
Hotlinking von Bildern und GegenmaßnahmenVorbemerkungen und Beispiele für geeignete GegenmaßnahmenÜbersicht / Seite:
Vorbemerkungen zu HotlinkingAls Hotlinking wird allgemein das Einbinden von Bildern und sonstigen Medien
in eine Webseite bezeichnet, wenn die einzubindenden Medien nicht innerhalb des eigenen Webspaces, sondern
auf einem entfernten Server gespeichert werden. Die Einbindung kann dabei auf unterschiedlicher Weise gelöst
werden, setzt jedoch immer ein Referenzieren voraus, bei dem die Webadresse (allgemein als URI oder
URL bezeichnet) der einzubindenden Datenquelle verwendet wird, um diese in den HTML-Quelltext einzubinden. <img src="http://www.example.com/verzeichnis/bild.jpg" alt="Ein Bild" width="480" height="320"> Hotlinking bietet eine Fülle von Möglichkeiten, die eigenen Webseiten
durch das Einbinden von Fotos, Grafiken, Videos und weiteren Medien zu bereichern. Dem steht gegenüber,
dass Hotlinking nicht gern gesehen wird, wenn diese Einbindung ohne die Einwilligung des Urhebers oder
des nutzungsberechtigten Webmasters erfolgt. Vor allem dann nicht, wenn dieser die Einbindung der
jeweiligen Medien nicht oder nur unter bestimmten Voraussetzungen gestattet und diese Voraussetzungen
bei der Einbindung nicht erfüllt werden. Beispiele für GegenmaßnahmenGeeignete Gegenmaßnahmen beginnen mit der Auswertung der Referrer. Erst nach
dem diese ausgewertet wurden, können entsprechender Regeln in der htaccess notiert werden. Für erste Tests
sollte als Kondition (Bedingung) genügen, dass bei jedem direkten Aufruf eines Bildes im Browser,
anstelle des gewünschten Images im Hintergrund ein entsprechendes Script vom Server ausgelöst wird. Um einem
Script mitzuteilen, welches Bild aufgerufen wurde, werden der Pfad und die Endung des aufgerufenen Images
mit $1 und $2 einem neu zu bildenden QueryString übergeben. RewriteEngine On Weitere Beispiele für Konditionen folgen auf der letzten Seite dieses
Tutorials. <?php header("Cache-Control: no-cache, must-revalidate"); // neue Anfrage an den Server auslösen header("Expires: Thu, 01 Jan 1970 00:00:00 GMT"); // Datum in die Vergangenheit verlegen header("Pragma: no-cache"); // zusätzlicher Hinweis für Proxy-Server if (isset($_GET["image"]) and !empty($_GET["image"])) { $eingang = $_GET["image"]; $endung = $_GET["endung"]; $eingang = preg_replace("/[^a-z0-9_\/-]/i", "", $eingang); $endung = preg_replace("/[^a-z]/i", "", $endung); $endung = strtolower($endung); if ($endung == "jpg") { header("Content-Type: image/jpeg"); $image = imagecreatefromjpeg($eingang.".".$endung); } if ($endung == "png") { header("Content-type: image/png"); $image = imagecreatefrompng($eingang.".".$endung); } $format = getimagesize($eingang.".".$endung); $width = $format[0]; $height = $format[1]; $aboben = $height - 60; // height minus 60 ergibt den Abstand von oben $abobet = $aboben + 20; // plus 20 fuer Ausrichtung des Vermerks $infos1 = "Weitere Infos zum Bild erwünscht?"; $infos2 = "Dann folgen Sie dem Link."; $quelle = "Quelle: www.example.com"; $transall = imagecolorallocatealpha($image, 30, 30, 30, 40); // R,G,B, Transparenz max. 127 imagefilledrectangle($image, 0, 0, $width, $height, $transall); imagefilledrectangle($image, 0, $aboben, $width, $height, $transall); $tfarbe = imagecolorallocate($image, 255, 150, 0); // Color RGB für Schrift $qfarbe = imagecolorallocate($image, 255, 240, 190); // RGB fuer Quelle if ($width > 220 and $height > 150) { if ($width > 340 and $height > 150) { $fontg = 5; $ablin = 20; } else {$fontg = 2; $ablin = 10;} imagestring($image, $fontg, $ablin, 30, $infos1, $tfarbe); // Font, Abstand von links, Abstand von oben imagestring($image, $fontg, $ablin, 54, $infos2, $tfarbe); // 30 plus Zeilenhoehe 24 gleich 54 imagestring($image, $fontg, $ablin, $abobet, $quelle, $qfarbe); } if ($endung == "jpg") imagejpeg($image); if ($endung == "png") imagepng($image); imagedestroy($image); } ?> Ein von PHP unbearbeitetes Image.
Das vorausgehende Bild bei einem Testaufruf zur Überprüfung des Scripts.
Für die Tests wurden Fotos in unterschiedlichen Größen verwendet, wobei das auf dieser Seite vorgestellte Code-Listing sich für Fotos, die wesentlich größer als das für dieses Tutorial verwendete Bild sind, sich als wenig geeignet erwies. Als wesentlich besser geeignet erwies sich hingegen das auf der nächsten Seite vorgestellte Script. weiterlesen » Text in Bilder einfügen | Rewrite Regeln |
Navigation
Finden und - Optimierung -
Webcoding
Übersicht Web Services Tutorials &
und vieles mehr... XML |