Axel Richter: .HTACCESS

Beitrag lesen

Hallo,

um Datein im Verzeichniss durch direkte Links das Downloaden zu verbieten, kann man doch normalerweiße folgenden Code in die .htaccess schreiben und es sollte dann eine alternativ Grafik kommen:

Behauptet wer?

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?domain.com(/.*)?$ [NC]
RewriteRule .(gif|jpg|GIF|JPG)$ http://www.domain.com/error.gif [R,L]

Hm: Wenn der Referer NICHT leer ist UND NICHT dem Muster entspricht, dann ersetzt alle Anforderungen von .(gif|jpg|GIF|JPG)$ durch http://www.domain.com/error.gif.

Punkt 1:
Was, wenn der Referer leer ist?

Punkt 2:
Wir "verbessern":

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} !^http://(www.)?domain.com(/.*)?$ [NC]
RewriteRule .(gif|jpg|GIF|JPG)$ http://www.domain.com/error.gif [R,L]

Wenn der Referer leer ist ODER NICHT dem Muster entspricht, dann ersetzt alle Anforderungen von .(gif|jpg|GIF|JPG)$ durch http://www.domain.com/error.gif.

Hm, nun haben wir eine Endlosschleife, weil der Redirect auf error.gif ja auch wieder einer Anforderung von .(gif|jpg|GIF|JPG)$ entspricht.

Du kannst also in der RewriteRule höchstens auf eine Ressource umleiten, die keiner Anforderung von .(gif|jpg|GIF|JPG)$ entspricht.

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} !^http://(www.)?domain.com(/.*)?$ [NC]
RewriteRule .(gif|jpg|GIF|JPG)$ http://www.domain.com/error.cgi [R,L]

viele Grüße

Axel