我知道.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
答案 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上默认阻止。