Anty-hotlinking działa tylko częściowo


(kasiekonline) #1

Na początku zaznaczam, że nie mam zielonego pojęcia o PHP, więc jakby co to proszę łopatologicznie ^^

Znalazłam sposób na obronę przed hotlinkowaniem przez wpis w .htaccess, ma to wyglądać tak:

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mojsajt.pl/ [NC]

RewriteCond %{HTTP_REFERER} !^$

RewriteRule .*\.(jpe?g|gif|rar|zip)$ - [F]

Nie miałam wcale pliku .htaccess, więc zrobiłam, wrzuciłam na serwer i o dziwo zadziałało... ale nie całkiem. Tzn. przy odwołaniu typu http://www.mojsajt.pl/image.jpg zabezpieczenie działa i obrazka nie widać, ale wystarczy że użyję adresu bez www , czyli http://mojsajt.pl/image.jpg i już obraz się wyświetla :frowning:

Jak to przerobić? Bardzo proszę o wskazówki, najlepiej w postaci propozycji gotowego kodu (patrz pierwsze zdanie posta... :-P)


(Panda2a) #2

Linia 3 - wstaw

RewriteCond %{HTTP_REFERER} !^http://mojsajt.pl/ [NC]

(kasiekonline) #3

Czyli cały kod ma wyglądać tak?

RewriteEngine On 

RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mojsajt.pl/ [NC]

RewriteCond %{HTTP_REFERER} !^http://mojsajt.pl/ [NC]

RewriteCond %{HTTP_REFERER} !^$ 

RewriteRule .*\.(jpe?g|gif|rar|zip)$ - [F]

No to bez zmian, nie działa.


(Panda2a) #4
RewriteEngine On

RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mojsajt.pl/ [OR]

RewriteCond %{HTTP_REFERER} !^http://mojsajt.pl/ [NC]

RewriteCond %{HTTP_REFERER} !^$

RewriteRule .*\.(jpe?g|gif|rar|zip)$ - [F]

Teraz ? lub:

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://mojsajt.pl/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://mojsajt.pl$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.mojsajt.pl/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.mojsajt.pl$ [NC]

RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]