Como impedir o link direto externo para arquivos com o htaccess?

4

Eu tenho isso no meu htaccess na pasta public_html do meu servidor de arquivos:

RewriteEngine On
RewriteBase /
ReWriteCond %{REQUEST_URI} ^/files/*
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite.net/.*$ [NC]
RewriteRule \.(gif|png|jpg|jar|sis|mp3|thm)$ - [F]

E eu tenho muitas pastas e arquivos dentro do diretório mysite.net/files, que eu quero evitar que sejam baixados diretamente de outros sites que não o mysite.net. No entanto, as regras acima não parecem funcionar, apesar de eu saber que o arquivo .htaccess está habilitado. Em alguns casos, bloqueia apenas as imagens, mas não os arquivos. Por favor, me diga o que há de errado com esse script, ou se eu posso usar qualquer outra diretiva para impedir que sites externos leecham meus arquivos constantemente. Obrigado

    
por andreszs 26.09.2009 / 00:37

1 resposta

2

Isso ajuda se você adicionar ". *"?

RewriteRule .*\.(gif|png|jpg|jar|sis|mp3|thm)$ - [F]

Além disso, sua linha:

ReWriteCond %{REQUEST_URI} ^/files/*

significa (no final) "uma barra zero ou mais vezes". Você pode tentar:

ReWriteCond %{REQUEST_URI} ^/files/.*

que significa "uma barra, em seguida, qualquer caractere zero ou mais vezes".

Editar : alguns dos seus arquivos podem ser nomeados com extensões em maiúsculas. Você pode tentar:

RewriteRule .*\.(gif|png|jpg|jar|sis|mp3|thm)$ - [F,NC]
    
por 26.09.2009 / 01:04