阻止使用.htaccess直接下载SQLite文件

时间:2010-11-18 05:02:57

标签: apache sqlite .htaccess mod-rewrite protection

我知道.htaccess的基础知识,但是当谈到mod_rewrite时,我自愿承认自己是非专家。

问题:    我在文档根目录中有一个sqlite db文件(不,我不能将它移出这里),名为data.sqlite。此文件由PHP文件在内部访问,但是,我想保护此文件不被用户直接在其浏览器中键入db 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

任何我想改写错误的想法?我确定这很简单吗?

编辑:

理想情况下,我希望阻止对以.sqlite结尾的所有文件的直接URL访问,而不仅仅是data.sqlite

3 个答案:

答案 0 :(得分:1)

httpd禁用对默认情况下以.开头的文件的访问权限。将您的文件重命名为.data.sqlite,它将被处理。

答案 1 :(得分:1)

这是你如何做到的,因为我也做到了:

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

答案 2 :(得分:0)

关于"从...开始。"那不是真的!文件必须从" .ht"开始。在appache上默认阻止。