1

我们的下载服务器有问题,想通过 htaccess 解决。我们的下载服务器是许多带有zip|rar|mp3|wmv|flv扩展名的文件的目录,用户不应直接访问它们。

我们想要这样的场景:当每个用户都请求这样的文件时;我们将他重定向到一个页面(例如download.php)并更新我们关于该文件的统计信息,然后将他重定向到 url(所以只有这个页面可以下载文件。)

我搜索了一下,发现了一个语法,但似乎有些不对劲!你能帮我吗:

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]

感谢 Mihai,所以我们可以用这个 htaccess 文件解决我们的问题:

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]

最后处理“download.php”中的所有请求..

4

2 回答 2

1

也许您忘记了任何文件名:

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

%{REQUEST_URI}将返回请求的 uri,您可以从那里处理(readfile()

于 2012-08-28T08:33:40.553 回答
0

尝试使用

deny from all

在您的 .htaccess 中。您可以使用您的 php 页面执行某些操作并让用户下载文件。

PS。如果我是你,我不希望这些用户在尝试直接访问文件时重定向到下载页面。如果他们做他们不应该做的事情,在我的情况下它有点非法。因此,如果他们尝试直接访问文件,我将向他们显示禁止页面。

于 2012-08-28T08:30:35.950 回答