2010-11-18 9 views
3

私は.htaccessの基本を知っていますが、mod_rewriteに関しては専門家ではないことを自由に認めます。.htaccessを使用してSQLiteファイルを直接ダウンロードできないようにする

問題: ドキュメントルートには、data.sqliteという名前のsqlite dbファイルがあります(ここでは移動できません)。このファイルはPHPファイルによって内部的にアクセスされますが、db URLをブラウザに直接入力することで、このファイルが「ダウンロード」されないようにしたいと考えています。

私は過去にかなりのURLを作成するために.htaccessを使用していました。mod_rewriteを使用することで、私の問題を解決することができました。しかし、私の書き換えルールはアクセスを妨げないようです。

の.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 

私は書き換えで間違ったつもりだすべてのアイデアは?私はそれが何か簡単だと確信していますか?

EDIT:

理想的には、私は.sqliteで終わるすべてのファイルへの直接のURLへのアクセスを阻止したいのですが、ちょうどdata.sqlite

+0

あなたはそこからそれを移動できない理由を再検討する必要があります。 – Thilo

+0

@Thilo - ドキュメントルートの外にあることがはるかに安全であり、はるかに理想的です。それが利用可能なオプションだったなら、私はそうだった。 –

答えて

1

HTTPDはデフォルトで.で始まるファイルへのアクセスを無効にしません。ファイル名を.data.sqliteに変更してください。ここで

+1

もし彼がファイルの名前を変更することができれば、おそらくそれをドキュメントルートから完全に移動することもできます。 – Thilo

+0

@Ignacia - これは興味深いオプションです。 –

1

は、私もそれを行っているので、あなたがそれを行う方法は次のとおりです「で始まる」

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

についてそれは本当ではない!ファイルは、 ".ht"で始まり、appacheのデフォルトでブロックされなければなりません。