You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Christian Hörmann <ph...@hoerby.org> on 2006/01/02 12:39:17 UTC

.htaccess -> hotlinking

hallo community!

es gibt ja netterweise die tolle möglichkeit mittels htaccess hotlinking zu 
unterbinden.
onkel google hat mir dazu schon einiges ausgeworfen:

      RewriteEngine on
      RewriteCond %{HTTP_REFERRER} !^$
      RewriteCond %{HTTP_REFERRER} !^http://(www\.)?nashweb\.de(/.*)?$ [NC]
      RewriteRule \.(gif|png)$ http://www.nashweb.de/ersatz.gif
      [R,L]

mein problem ist allerding: ich will hotlinking allgemein erlauben, nur für 
bestimmt domains
wie ebay.at/.de/com etc. onetwosold.at [...] unterbinden.
gibt es eine möglichkeit explizit diesen domains den zugriff zu verwehren, 
dem rest aber schon?


danke für eure hilfe,

gutes neues jahr!

christian


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: .htaccess -> hotlinking

Posted by Robert Ionescu <ro...@googlemail.com>.
Christian Hörmann wrote:
> hmmm...
> ich habs so in die .htaccess datei geschrieben:
> 
> RewriteEngine on
> RewriteCond %{HTTP_REFERRER} ^http://([^.]+\.)?ebay\. [NC]
> RewriteCond %{HTTP_REFERRER} ^http://([^.]+\.)?onetwosold\.at [NC]
> RewriteRule \.(gif|png|jpg)$ 
> http://www.hoerby.org/easyupload/up2/hotlinking.png [R,L]
> 
> wenn ich jetzt die datei hotllinking.png oder eine andere datei im 
> verzeichnis per browser aufrufen will bekomme ich
> einen error 500 - internal server error?

mpf. zu viel copy&paste...
Es muss HTTP_REFERER heißen, mit einem R. Das ist ein wohl ungewollter 
Schreibfehler in dem rfc xyz, eigentlich wollte man im Standard wohl 
REFERRER verankern...

-- 
Robert


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: .htaccess -> hotlinking

Posted by Robert Ionescu <ro...@googlemail.com>.
Christian Hörmann wrote:
> Leider erhalte ich bei einem direkten 
> Aufruf einer Datei vom Browser folgende Fehlermeldung:
> 
> Internal Server Error

Hast du die .htaccess Datei im ANSI-Zeichensatz gespeichert (Standard 
bei notepad) und im ASCII-Modus per FTP auf den Server geladen?

Funktioniert der "google-Test"?:

RewriteEngine on
RewriteRule ^.* http://www.google.de [R,L]


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: .htaccess -> hotlinking

Posted by Christian Hörmann <ph...@hoerby.org>.
Hallo Marcus,

vielen Dank für die ausführliche Erklärung. Habe die Test .htaccess Datei 
nun in mein Stammverzeichnis gelegt, doch ich bekomme weiterhin den 500er 
Error. Die .htaccess Dateien lege ich mit einem Web-Ftp Programm vom 
Anbieter http://www2ftp.de an, da Dreamweaver die .htaccess Files im 
falschen Zeichensatz hochlädt.

Gut. Dh. ich werde mich erstmals asap mit meinem webspace provider in 
verbindung setzen...


Danke nochmals für die tatkräftige Unterstützung,

Grüße, Christian.
----- Original Message ----- 
From: "Marcus Reimann" <Ma...@reimann-systemberatung.de>
To: <us...@httpd.apache.org>
Sent: Tuesday, January 03, 2006 4:46 PM
Subject: RE: .htaccess -> hotlinking


> Hallo Christian,
>
> Du schreibst:
>>Danke erstmals für die Hilfe. Leider erhalte ich bei einem
>>direkten Aufruf einer Datei vom Browser folgende Fehlermeldung:
>
>>Internal Server Error
>>The server encountered an internal error or misconfiguration
>>and was unable to complete your request.
>>Please contact the server administrator, admin and inform them
>>of the time the error occurred, and anything you might have
>>done that may have caused the error.
>>
>>More information about this error may be available in the server
>>error log.
>>
>>Additionally, a 404 Not Found error was encountered while trying
>>to use an ErrorDocument to handle the request.
>
> Lösung:
> Teste erstmal, ob normale Rewrite-Regeln in deiner Webhosting-
> Umgebung funktionieren. Dazu installierst Du dir eine ganz einfache
> .htaccess-Datei in Deinem obersten Verzeichnis mit erstmal ganz
> einfachen Ersetzungsregeln. Wichtig: Die .htaccess-Datei muß bei
> diesem Beispiel in das oberste Verzeichnis, also ins DocumentRoot,
> sonst muß RewriteBase angepasst werden, damit es funktioniert:
>
> RewriteEngine On
> RewriteBase /
> RewriteRule ^test\.html$ test2.html [R]
>
> Dann rufst du die Seite auf mit http://servername/test.html.
> Wenn dann ein Internal Server Error auftritt, ist AllowOverride
> nicht korrekt gesetzt. Wenn Du dann keinen eigenen Server hast,
> kannst Du mod_rewrite nicht einsetzen (oder Du mußt mit Deinem
> Anbieter sprechen, damit er es freischaltet).
>
> Wenn der Aufruf jedoch erwartungsgemäß auf die Seite test2.html
> umleitet (Redirect), dann ergänze Deine Rewrite-Regeln um die
> bei .htaccess-Dateien notwendige RewriteBase-Direktive.
> Bei .htaccess-Dateien muss die RewriteBase-Direktive immer
> korrekt (!) gesetzt werden. Das ist anfangs nicht ganz leicht
> zu verstehen, aber unter
> http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteBase
> sind die Zusammenhänge ausführlich erklärt.
>
> Viele Grüße
> Marcus Reimann
> M. Reimann Systemberatung
> http://www.reimann-systemberatung.de
>
>
> --------------------------------------------------------------------------
>                Apache HTTP Server Mailing List "users-de"
>      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
>           sonstige Anfragen an users-de-help@httpd.apache.org
> --------------------------------------------------------------------------
>
> 


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


RE: .htaccess -> hotlinking

Posted by Marcus Reimann <Ma...@reimann-systemberatung.de>.
Hallo Christian,

Du schreibst:
>Danke erstmals für die Hilfe. Leider erhalte ich bei einem
>direkten Aufruf einer Datei vom Browser folgende Fehlermeldung:

>Internal Server Error
>The server encountered an internal error or misconfiguration
>and was unable to complete your request.
>Please contact the server administrator, admin and inform them
>of the time the error occurred, and anything you might have
>done that may have caused the error.
>
>More information about this error may be available in the server
>error log.
>
>Additionally, a 404 Not Found error was encountered while trying
>to use an ErrorDocument to handle the request.

Lösung:
Teste erstmal, ob normale Rewrite-Regeln in deiner Webhosting-
Umgebung funktionieren. Dazu installierst Du dir eine ganz einfache
.htaccess-Datei in Deinem obersten Verzeichnis mit erstmal ganz
einfachen Ersetzungsregeln. Wichtig: Die .htaccess-Datei muß bei
diesem Beispiel in das oberste Verzeichnis, also ins DocumentRoot,
sonst muß RewriteBase angepasst werden, damit es funktioniert:

RewriteEngine On
RewriteBase /
RewriteRule ^test\.html$ test2.html [R]

Dann rufst du die Seite auf mit http://servername/test.html.
Wenn dann ein Internal Server Error auftritt, ist AllowOverride
nicht korrekt gesetzt. Wenn Du dann keinen eigenen Server hast,
kannst Du mod_rewrite nicht einsetzen (oder Du mußt mit Deinem
Anbieter sprechen, damit er es freischaltet).

Wenn der Aufruf jedoch erwartungsgemäß auf die Seite test2.html
umleitet (Redirect), dann ergänze Deine Rewrite-Regeln um die
bei .htaccess-Dateien notwendige RewriteBase-Direktive.
Bei .htaccess-Dateien muss die RewriteBase-Direktive immer
korrekt (!) gesetzt werden. Das ist anfangs nicht ganz leicht
zu verstehen, aber unter
http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteBase
sind die Zusammenhänge ausführlich erklärt.

Viele Grüße
 Marcus Reimann
 M. Reimann Systemberatung
 http://www.reimann-systemberatung.de


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: .htaccess -> hotlinking

Posted by Christian Hörmann <ph...@hoerby.org>.
Hallo!

Danke erstmals für die Hilfe. Leider erhalte ich bei einem direkten Aufruf 
einer Datei vom Browser folgende Fehlermeldung:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable 
to complete your request.
Please contact the server administrator, admin and inform them of the time 
the error occurred, and anything you might have done that may have caused 
the error.

More information about this error may be available in the server error log.


Additionally, a 404 Not Found error was encountered while trying to use an 
ErrorDocument to handle the request.

tja... und leider hab ich keinen zugriff auf die errorlogs des webservers, 
da ich keinen eigenen server betreibe...



gut. aber wenn das wirklich nicht funktionieren sollte, werde ich es wohl 
oder übel über php lösen und geschwindigkeitseinbußen hinnehmen. :(

----- Original Message ----- 
From: "Robert Ionescu" <ro...@googlemail.com>
To: <us...@httpd.apache.org>
Sent: Tuesday, January 03, 2006 2:49 AM
Subject: Re: .htaccess -> hotlinking


> Christian Hörmann wrote:
>> hmmm...
>> ich habs so in die .htaccess datei geschrieben:
>
> Ach ja, das OR-Flag fehlt auch noch, sorry, und je nach dem wo die 
> .htaccess liegt, muss deine Ersatzdatei auch noch freigegeben werden:
>
> RewriteEngine on
> RewriteCond %{HTTP_REFERER} ^http://([^.]+\.)?ebay\. [OR,NC]
> RewriteCond %{HTTP_REFERER} ^http://([^.]+\.)?onetwosold\.at [NC]
> RewriteCond %{REQUEST_URI} !^/easyupload/up2/hotlinking\.png$
> RewriteRule \.(jpg|gif|png)$ /easyupload/up2/hotlinking.png [R,L]
>
> -- 
> Robert
>
> --------------------------------------------------------------------------
>                Apache HTTP Server Mailing List "users-de" 
> unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
>           sonstige Anfragen an users-de-help@httpd.apache.org
> --------------------------------------------------------------------------
>
> 


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: .htaccess -> hotlinking

Posted by Robert Ionescu <ro...@googlemail.com>.
Christian Hörmann wrote:
> hmmm...
> ich habs so in die .htaccess datei geschrieben:

Ach ja, das OR-Flag fehlt auch noch, sorry, und je nach dem wo die 
.htaccess liegt, muss deine Ersatzdatei auch noch freigegeben werden:

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://([^.]+\.)?ebay\. [OR,NC]
RewriteCond %{HTTP_REFERER} ^http://([^.]+\.)?onetwosold\.at [NC]
RewriteCond %{REQUEST_URI} !^/easyupload/up2/hotlinking\.png$
RewriteRule \.(jpg|gif|png)$ /easyupload/up2/hotlinking.png [R,L]

-- 
Robert

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: .htaccess -> hotlinking

Posted by Joerg Behrens <be...@takenet.de>.
Christian Hörmann schrieb:
> hmmm...
> ich habs so in die .htaccess datei geschrieben:
> 
> RewriteEngine on
> RewriteCond %{HTTP_REFERRER} ^http://([^.]+\.)?ebay\. [NC]
> RewriteCond %{HTTP_REFERRER} ^http://([^.]+\.)?onetwosold\.at [NC]
> RewriteRule \.(gif|png|jpg)$ 
> http://www.hoerby.org/easyupload/up2/hotlinking.png [R,L]
> 
> wenn ich jetzt die datei hotllinking.png oder eine andere datei im 
> verzeichnis per browser aufrufen will bekomme ich
> einen error 500 - internal server error?

Das sagt dir nun dein error.log. Da wird evtl. drin stehen das bestimmte 
  Einstellungen nicht in einer htaccess benutzt werden duerfen.  Was 
benutzt werden darf regelt AllowOverride in der httpd.conf bzw. deine 
vhost config.

Gruss
Joerg

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: .htaccess -> hotlinking

Posted by Christian Hörmann <ph...@hoerby.org>.
hmmm...
ich habs so in die .htaccess datei geschrieben:

RewriteEngine on
RewriteCond %{HTTP_REFERRER} ^http://([^.]+\.)?ebay\. [NC]
RewriteCond %{HTTP_REFERRER} ^http://([^.]+\.)?onetwosold\.at [NC]
RewriteRule \.(gif|png|jpg)$ 
http://www.hoerby.org/easyupload/up2/hotlinking.png [R,L]

wenn ich jetzt die datei hotllinking.png oder eine andere datei im 
verzeichnis per browser aufrufen will bekomme ich
einen error 500 - internal server error?

hilfe.
----- Original Message ----- 
From: "Christian Hörmann" <ph...@hoerby.org>
To: <us...@httpd.apache.org>
Sent: Monday, January 02, 2006 4:47 PM
Subject: Re: .htaccess -> hotlinking


> hallo robert!
>
>
> dankeschön. danke danke danke danke!!!
>
> muss ich gleich mal ausprobieren :)
> lg
> chrisitan.
>
> ----- Original Message ----- 
> From: "Robert Ionescu" <ro...@googlemail.com>
> To: <us...@httpd.apache.org>
> Sent: Monday, January 02, 2006 4:04 PM
> Subject: Re: .htaccess -> hotlinking
>
>
>> Christian Hörmann wrote:
>>> Hello!
>>>
>>> Ich weiss, dass der Referrer keine Pflilcht ist... aber es ist zumindest 
>>> besser als garnichts...
>>> dH wenn kein Referrer übergeben wird, so ist hotlinking aktiviert, 
>>> bekomme ich einen
>>> Referrer von ebay & co, so soll ein Ersatzbild angezeigt werden.
>>
>> Du musst deine derzeit negativ formulierte Condition dann nur positiv 
>> formulieren:
>>
>> RewriteEngine on
>> RewriteCond %{HTTP_REFERRER} ^http://([^.]+\.)?ebay\. [NC]
>> RewriteCond %{HTTP_REFERRER} ^http://([^.]+\.)?onetwosold\.at [NC]
>> RewriteRule \.(gif|png)$ http://www.nashweb.de/ersatz.gif [R,L]
>>
>>
>> (/.*)? am Ende solltest du weglassen, das verursacht u.U. nur einen 
>> unnötigen Backtrack.
>>
>> -- 
>> Robert
>>
>> --------------------------------------------------------------------------
>>                Apache HTTP Server Mailing List "users-de" 
>> unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
>>           sonstige Anfragen an users-de-help@httpd.apache.org
>> --------------------------------------------------------------------------
>>
>>
>
>
> --------------------------------------------------------------------------
>                Apache HTTP Server Mailing List "users-de" 
> unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
>           sonstige Anfragen an users-de-help@httpd.apache.org
> --------------------------------------------------------------------------
>
> 


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: .htaccess -> hotlinking

Posted by Christian Hörmann <ph...@hoerby.org>.
hallo robert!


dankeschön. danke danke danke danke!!!

muss ich gleich mal ausprobieren :)
lg
chrisitan.

----- Original Message ----- 
From: "Robert Ionescu" <ro...@googlemail.com>
To: <us...@httpd.apache.org>
Sent: Monday, January 02, 2006 4:04 PM
Subject: Re: .htaccess -> hotlinking


> Christian Hörmann wrote:
>> Hello!
>>
>> Ich weiss, dass der Referrer keine Pflilcht ist... aber es ist zumindest 
>> besser als garnichts...
>> dH wenn kein Referrer übergeben wird, so ist hotlinking aktiviert, 
>> bekomme ich einen
>> Referrer von ebay & co, so soll ein Ersatzbild angezeigt werden.
>
> Du musst deine derzeit negativ formulierte Condition dann nur positiv 
> formulieren:
>
> RewriteEngine on
> RewriteCond %{HTTP_REFERRER} ^http://([^.]+\.)?ebay\. [NC]
> RewriteCond %{HTTP_REFERRER} ^http://([^.]+\.)?onetwosold\.at [NC]
> RewriteRule \.(gif|png)$ http://www.nashweb.de/ersatz.gif [R,L]
>
>
> (/.*)? am Ende solltest du weglassen, das verursacht u.U. nur einen 
> unnötigen Backtrack.
>
> -- 
> Robert
>
> --------------------------------------------------------------------------
>                Apache HTTP Server Mailing List "users-de" 
> unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
>           sonstige Anfragen an users-de-help@httpd.apache.org
> --------------------------------------------------------------------------
>
> 


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: .htaccess -> hotlinking

Posted by Robert Ionescu <ro...@googlemail.com>.
Christian Hörmann wrote:
> Hello!
> 
> Ich weiss, dass der Referrer keine Pflilcht ist... aber es ist zumindest 
> besser als garnichts...
> dH wenn kein Referrer übergeben wird, so ist hotlinking aktiviert, 
> bekomme ich einen
> Referrer von ebay & co, so soll ein Ersatzbild angezeigt werden.

Du musst deine derzeit negativ formulierte Condition dann nur positiv 
formulieren:

RewriteEngine on
RewriteCond %{HTTP_REFERRER} ^http://([^.]+\.)?ebay\. [NC]
RewriteCond %{HTTP_REFERRER} ^http://([^.]+\.)?onetwosold\.at [NC]
RewriteRule \.(gif|png)$ http://www.nashweb.de/ersatz.gif [R,L]


(/.*)? am Ende solltest du weglassen, das verursacht u.U. nur einen 
unnötigen Backtrack.

-- 
Robert

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: Re: .htaccess -> hotlinking

Posted by Christian Hörmann <ph...@hoerby.org>.
Hello!

Ich weiss, dass der Referrer keine Pflilcht ist... aber es ist zumindest 
besser als garnichts...
dH wenn kein Referrer übergeben wird, so ist hotlinking aktiviert, bekomme 
ich einen
Referrer von ebay & co, so soll ein Ersatzbild angezeigt werden.

Ich biete einen kleinen Bilderuploadservice an wo jedoch Uploads für ebay 
und co wegen des hohen
Traffics untersagt ist. Die meisten halten sich auch daran... die meisten. 
aber nicht alle...  leider.

Danke,
Christian.


>Hallo christian,
>nur zur Sicherheit: Wenn der Request keinen Referrer enthält was machst du
>dann? Ein Referrer ist ja keine Pflicht!
>
>Gruß,
>Andreas




--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


RE: .htaccess -> hotlinking

Posted by Andreas Müller <ap...@universalware.de>.
Hallo christian,
nur zur Sicherheit: Wenn der Request keinen Referrer enthält was machst du
dann? Ein Referrer ist ja keine Pflicht!

Gruß,
Andreas



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------