开发者

preventing direct download of SQLite file using .htaccess

开发者 https://www.devze.com 2023-01-26 04:32 出处:网络
I know the basics of .htaccess, but freely admit to being a non-expert when it comes to mod_rewrite. The problem:

I know the basics of .htaccess, but freely admit to being a non-expert when it comes to mod_rewrite.

The problem: I have a sqlite db file in the document root (no, I can't move it out of here) called data.sqlite. This file is accessed internally by PHP files, however, I want to protect this file from being 'downloaded' by the user typing the db URL directly into their browser.

I have used .htaccess to create pretty URLs in the past, and thought using mod_rewrite would provide a nice solution to my problem. However, my rewrite rule does not seem to prevent access.

开发者_如何学Go.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

Any ideas where I'm going wrong with the rewrite?? I'm sure it is something simple?

EDIT:

Ideally, I'd like to prevent direct URL access to all files ending in .sqlite, not just data.sqlite


Here's how you do it because I have also done it:

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


About "start with ." that is not true!. File must start on ".ht" to be blocked by default on appache.


httpd disables access to files that start with a . by default. Rename your file to .data.sqlite and it will be dealt with.

0

精彩评论

暂无评论...
验证码 换一张
取 消