2010-11-18 5 views
3

Je connais les bases de .htaccess, mais avoue volontiers être un non-expert en matière de mod_rewrite.empêchant le téléchargement direct du fichier SQLite en utilisant .htaccess

Le problème: J'ai un fichier sqlite db dans la racine du document (non, je ne peux pas le sortir d'ici) appelé data.sqlite. Ce fichier est accessible en interne par des fichiers PHP, cependant, je veux protéger ce fichier contre le fait qu'il soit "téléchargé" par l'utilisateur qui tape l'URL db directement dans son navigateur. J'ai utilisé .htaccess pour créer de jolies URL dans le passé, et j'ai pensé que l'utilisation de mod_rewrite fournirait une bonne solution à mon problème. Cependant, ma règle de réécriture ne semble pas empêcher l'accès.

.htaccess

Options +FollowSymLinks 
Options -multiviews 

RewriteEngine On 
RewriteBase/


RewriteCond %{http_host} ^www\.example\.com [NC] 
RewriteRule ^(.*)$ http://example.com/$1 [R=301,NC] 

##prevent access to any file data.sqlite by redirecing back to index.php 
RewriteRule ^data.sqlite$ index.php [L,NC] 

##my other rules follow - not shown here 

Toutes les idées où je vais mal avec la réécriture ?? Je suis sûr que c'est quelque chose de simple?

EDIT:

Idéalement, je voudrais pour empêcher l'accès URL directe à tous les fichiers se terminant par .sqlite, non seulement data.sqlite

+0

Vous devriez réexaminer pourquoi vous ne pouvez pas le sortir de là ... – Thilo

+0

@Thilo - tout à fait d'accord qu'il est beaucoup plus sûr d'avoir en dehors de la racine du document - et beaucoup plus idéal. Si c'était une option disponible, je le ferais. –

Répondre

1

httpd désactive l'accès aux fichiers qui commencent par un . par défaut . Renommez votre fichier en .data.sqlite et il sera traité.

+1

S'il peut renommer le fichier, il peut probablement aussi simplement le retirer de la racine du document. – Thilo

+0

@Ignacia - c'est une option intéressante. –

1

Voilà comment vous le faites parce que je l'ai aussi fait:

RewriteCond %{HTTP_REFERER} !^http://*.webwarecollection.com/.*$  [NC] 
RewriteCond %{HTTP_REFERER} !^http://*.webwarecollection.com$  [NC] 
RewriteRule .*\.(sqlite)$ - [F,NC] 
0

A propos de « commencer. » ce n'est pas vrai!. Le fichier doit commencer sur ".ht" pour être bloqué par défaut sur appache.

Questions connexes