doutui8842
doutui8842
2012-08-28 08:25

使用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"..

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • dongtangu8403 dongtangu8403 9年前

    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())

    点赞 评论 复制链接分享
  • douguazhi5966 douguazhi5966 9年前

    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.

    点赞 评论 复制链接分享