隐藏用户的原始下载链接

时间:2012-11-27 15:45:16

标签: php hyperlink download

  1. 主要链接是:yourname.com/movie/film.mkv

  2. 为用户下载链接:yourname.com/2012/Esx123Sxzz96/film /

  3. 如何在没有用户看到主链接的情况下将链接2切换到链接1 它出现在下载管理器中?

2 个答案:

答案 0 :(得分:1)

首先,如果您想保护自己的网站不让用户直接访问数据,请使用.htaccess来阻止直接访问/ movie /文件夹。

然后,通过php传递文件,首先发送相应的header,请参阅this thread以获取更多信息。

如果您的电影是大文件,请考虑发送文件的其他方法,例如我自己从未使用的x-sendfile,有关详细信息,请参阅this answer

修改:如果您没有要执行的用户身份验证,统计信息跟踪,下载限制等等...并且只想重写您可以使用.htaccess的路径rewrite路径(虽然你提供了第二条路径,但似乎需要逻辑来提取所需的路径)。如果你不关心用户在点击链接后知道“秘密路径”,你可以简单地使用header('Location: yourname.com/movie/film.mkv"); - 这将允许用户为你的文件设置书签,而不必经历你的再次yourname.com/2012/Esx123Sxzz96/film/路径。

重新编辑显然,真正的问题是如何创建一个整个系统,可以存储媒体,然后通过“不同”路径访问,隐藏源。

我要做的是为您要存储的每种媒体构建一个列表或数据库。将项目添加到列表时,请为其指定唯一ID。为了简单起见,让我们从0开始,并为每个文件递增1。您可以在列表/数据库中存储媒体中的更多信息,例如每部电影的长度,文件大小等......

然后,当您想要向用户列出这些文件时,您只需hash该ID,就可以使用类似this的内容,这会创建一个字符串,例如U6dc。 ..现在可以使用<a href="mysite/files/$hashedValue">Link for $filename</a>建立链接。

使用mysite/files/拦截对.htaccess的来电,并将其重定向到files.php,负责将参数U6dc转换为列表中的ID。获得此ID后,您可以轻松找到驱动器上的媒体并将其发送给用户,也许可以使用x-sendfile,直至您。

答案 1 :(得分:0)

使用.htaccess,您可以声明自己的条件。