ProGrafr
ProGrafr

Reputation: 13

download control using htaccess

We have a problem in our download server and wanna solve it via htaccess. our download server is directory of many files with zip|rar|mp3|wmv|flv extension that users should not direct access to them.

We want this scenario: when every user request such files; we redirect him to a page (e.g. download.php) and and update our statistics about that file then redirect him to url(so just this page can download a file.)

I searched about it and found a syntax but it seems somthings wrong! can u help me:

RewriteEngine on
# Options +FollowSymlinks
RewriteBase /
# CLOSE HOTLINKS
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?myserver.com/.*$ [NC]
RewriteRule \.(mp3|wmv|flv|exe|rar|zip|jpg)$ http://mydownloadserver.com/download.php?url=$1 [L]

with thanks to Mihai so we can solve our problem with this htaccess file:

RewriteBase /
RewriteCond %{HTTP_REFERER} !^http://(www\.)?anotherAllowedDomain.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?MyDownloadServer.com/download.php.*$ [NC]
RewriteRule \.*.(mp3|wmv|flv|exe|rar|zip|jpg)$ http://MyDownloadServer.com/download.php?url=%{REQUEST_URI} [L]

and finally process all requests in "download.php"..

Upvotes: 1

Views: 877

Answers (2)

Mihai Iorga
Mihai Iorga

Reputation: 39704

Maybe you forgot any file name:

RewriteRule \.*.(mp3|mp4)$ http://mydownloadserver.com/download.php?url=%{REQUEST_URI} [L]

%{REQUEST_URI} will return the uri requested and you can process from there like (readfile())

Upvotes: 1

WatsMyName
WatsMyName

Reputation: 4478

Try using

deny from all

in your .htaccess. You can use your php page to do certain operations and let user download the file.

PS. If i were you, i dont want such users to redirect to a download page if they try to access files directly. Its kinda illegal in my scenario if they do what they are not suppose to do. So i will show them forbidden page if they try to acccess the files directly.

Upvotes: 0

Related Questions