Avatar billede zerocrash Nybegynder
13. oktober 2007 - 01:26 Der er 1 løsning

Forhindre deeplinking via .htaccess

Hej Eksperter.
Jeg har et webhotel hos DomainDirect som kører med en linux / Apache opsætning.

På serveren kører jeg med en Wordpress-opsætning som har skrevet en .htaccess i roden af mit domain.

Denne ser således ud:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Jeg har så været lidt rundt på nettet og søge efter et rewrite-module som kan forhindre hotlinking fra mit domæne UDOVER 3 tilladte domæner (websites), som skal have tilladelse hertil.

Jeg er nu, efter en lidt større research kommet frem til at der åbenbart er 2(?) måder at blokere hotlinking på via .htaccess - hvilket gør mig en smule forvirret.

Here goes..

-- EKSEMPEL #1

# Block image hotlinking
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !^http://(www\.)zerocrash\.dk [NC]
RewriteRule \.(gif¦jpe?g)$ - [NC,F]

men andet sted var den omskrevet til denne - som så viser en "advarsel".

-- EKSEMPEL #2

# stop hotlinking and serve alternate content
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.com/.*$ [NC]
RewriteRule .*\.(gif|jpg)$ http://www.domain.com/eatme.jpe [R,NC,L]
</ifModule>

Her står jeg af!
Hvorfor omskrives "RewriteCond %{HTTP_REFERER} ." til "RewriteCond %{HTTP_REFERER} !^$" ?

Nuvel - vi skal videre...
Jeg vil så tillade 3 domains via følgende linier:

# allow linking from the following site
RewriteCond %{HTTP_REFERER} !^http://(www\.)?goodsite1\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?goodsite2\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?goodsite3\.com/.*$ [NC]

Så jeg kan regne ud at min .htaccess skal se ud nogenlunde som følger (efter hvad jeg kan læse mig til):

<IfModule mod_rewrite.c>
RewriteEngine On
# BEGIN WordPress
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
# END WordPress
#
# BEGIN prevent hotlink
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?zerocrash\.dk/.*$ [NC]
# END prevent hotlink
#
# allow linking from the following site
RewriteCond %{HTTP_REFERER} !^http://(www\.)?goodsite1\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?goodsite2\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?goodsite3\.com/.*$ [NC]
# END allow linking from the following site
#
# BEGIN Warning-image
RewriteRule .*\.(gif|jpg)$ http://www.zerocrash.dk/stophotlink.jpg [R,NC,L]
# END Warning-image
</IfModule>

Jeg ved, at da jeg kører via Wordpress og nogle af mine læsere abonnerer via RSS-feeds, vil evt. billeder sikkert blive blokeret - er der nogle der har et tip til, hvordan jeg godkender feeds fra sitet til at indeholde billeder fra sitet?

Jeg har tilføjet kommentarer således at overblikket er lidt nemmere (for mig som nybegynder, at overskue hele opsætningen...)

Har i nogle rettelser til denne opsætning?
Avatar billede zerocrash Nybegynder
13. oktober 2007 - 02:51 #1
Efter lidt bøvlen frem og tilbage har jeg nu fået det resultat jeg ville have. Jeg lukker hermed spm..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester