Hotlinking, mod_rewrite, IE6
Paul Brunner
- webserver
Guten Morgen,
ich habe ein Problem mit der unter http://httpd.apache.org/docs/misc/rewriteguide.html beschriebenen htaccess-Sequenz zum verhindern von Bilder-Hotlinking im Zusammenspiel mit IE6.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?(domain1|domain2).de/.*$ [NC]
RewriteRule .*.(gif|jpg|png)$ - [F]
Nach meine Verständnis sollten die Bilder angezeigt werden solange sie als Request aus einer HTML-Datei auf meine eigenen Server angefordert werden, unabhänig davon ob die HTML-Datei selbst von einem externen oder einem internen Link aus aufgerufen wurde.
Sven hat das hier http://forum.de.selfhtml.org/archiv/2002/12/31113/#m168475 beschrieben.
Das funktioniert auch wunderbar, ausser beim IE6 (IE5 hab ich nicht getestet). Dort erscheinen die Bilder nur wenn von einem internen Link auf die Seite zugegriffen wurde. Reicht IE den Referer der HTML-Datei durch? Ist diese Problem bekannt und gibt es eine Möglichkeit das zu umgehen?
Gruß Paul
P.S.: Der neue Vorschaubutton ist ne feine Sache
RewriteCond %{HTTP_REFERER} !^http://(www.)?(domain1|domain2).de/.*$ [NC]
RewriteRule .*.(gif|jpg|png)$ - [F]
Das funktioniert auch wunderbar, ausser beim IE6 (IE5 hab ich nicht getestet). Dort erscheinen die Bilder nur wenn von einem internen Link auf die Seite zugegriffen wurde. Reicht IE den Referer der HTML-Datei durch?
Nein, zumindest mein IE 6 macht das nicht. Was steht denn in Deinem Zugriffsprotokoll?
Gruß,
soenk.e
Nein, zumindest mein IE 6 macht das nicht. Was steht denn in Deinem Zugriffsprotokoll?
Du hast recht, die Theorie mit dem durchreichen war Essig. Im Log ist alles wie es sein soll: HTML-Request mit externem Referer und die nachfolgenden Bilder mit internem Referer ...aber Status 403 (also fast alles wie es sein soll).
Zurück ans Zeichenbrett.
Gruß Paul
Zurück ans Zeichenbrett.
Hat es sich erledigt? Ansonsten schick' doch mal eine Adresse zum probieren. Oder, falls Du Zugang zur Serverkonfiguration hast, schalte die Protokollierung von mod_rewrite ein, danach sieht man meistens klarer (mod_rewrite ist ein Mysterium für sich).
Gruß,
soenk.e
Hat es sich erledigt?
Ha! habs gerade gefunden. Im Gegensatz zu Opera und Mozilla ergänzt IE nicht automatischen den fehlenden Schrägstrich am Ende der URL.
Statt so...
RewriteCond %{HTTP_REFERER} !^http://(www.)?(domain1|domain2).de/.*$ [NC]
muss das also so heissen:
RewriteCond %{HTTP_REFERER} !^http://(www.)?(domain1|domain2).de.*$ [NC]
...und dann klappts auch mit dem Nachbarn. Laut nachdenken hilft manchmal ;-)
Dank Dir Soenk.e
Gruß Paul
Ha! habs gerade gefunden. Im Gegensatz zu Opera und Mozilla ergänzt IE nicht automatischen den fehlenden Schrägstrich am Ende der URL.
Statt so...
RewriteCond %{HTTP_REFERER} !^http://(www.)?(domain1|domain2).de/.*$ [NC]
muss das also so heissen:
RewriteCond %{HTTP_REFERER} !^http://(www.)?(domain1|domain2).de.*$ [NC]
Jaja, http://www.dlsi.ua.es/asignaturas/comp2/mariner.html lässt grüßen ;)
Gruß,
soenk.e