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

我知道.htaccess的基础知识,但是在涉及到mod_rewrite的时候,我承认自己是非专家。

问题是:我在文档根目录下有一个sqlite数据库文件(不,我不能移出它)叫做data.sqlite 。 这个文件是由PHP文件在内部访问的,但是我想保护这个文件不被用户直接在浏览器中input数据库的URL“下载”。

我曾经使用.htaccess创build漂亮的URL,并认为使用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 

任何想法,我要错误的重写? 我确定这是简单的事情?

编辑:

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

httpd禁止访问以.开头的文件. 默认。 将你的文件重命名为.data.sqlite ,它将被处理。

下面是你如何做,因为我也做到了:

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

关于“开始”。 那是不正确的! 文件必须从“.ht”开始,以在appache上默认被阻止。