【发布时间】:2012-11-15 06:52:06
【问题描述】:
主链接是:yourname.com/movie/film.mkv
用户下载链接:yourname.com/2012/Esx123Sxzz96/film/
如何在不让用户看到主链接的情况下将链接 2 切换到链接 1 它出现在下载管理器中?
【问题讨论】:
-
这个链接可以是其他格式,链接2有镜像链接1没有用户理解
主链接是:yourname.com/movie/film.mkv
用户下载链接:yourname.com/2012/Esx123Sxzz96/film/
如何在不让用户看到主链接的情况下将链接 2 切换到链接 1 它出现在下载管理器中?
【问题讨论】:
首先,如果您想保护您的网站不让用户直接访问数据,请使用 .htaccess 防止直接访问 /movie/ 文件夹。
然后,通过 php 传递文件,首先发送适当的header,有关详细信息,请参阅this thread。
如果您的电影是大文件,请考虑使用其他方法来发送文件,例如我自己从未使用过的x-sendfile,有关详细信息,请参阅this answer。
编辑:如果您没有用户身份验证、统计跟踪、下载限制等...并且只是想重写您可以使用.htaccess 到@987654328 的路径@ 路径(尽管使用您提供的第二种路径,但您似乎需要逻辑来提取所需的路径)。如果您不关心用户在单击链接后知道“秘密路径”,您可以简单地使用 header('Location: yourname.com/movie/film.mkv"); - 这将允许用户为您的文件设置书签,而不必通过您的 @987654330再次@路径。
重新编辑显然,真正的问题是如何创建一个完整的系统来存储媒体,然后通过“不同”路径访问,隐藏源。
我要做的是为您要存储的每个媒体建立一个列表或数据库。将项目添加到列表时,请为其指定唯一 ID。为了简单起见,让我们从 0 开始,并为每个文件递增 1。您可以将来自媒体的更多信息存储在列表/数据库中,例如每部电影的长度、文件大小等...
然后,当你想向用户列出这些文件时,你只需hash id,你可以使用this 之类的东西,它会创建一个字符串,比如U6dc...现在可以建立链接使用:<a href="mysite/files/$hashedValue">Link for $filename</a>。
使用.htaccess 拦截对mysite/files/ 的调用并将其重定向到files.php,这将负责将参数U6dc 转换为列表中的ID。获得此 ID 后,您可以轻松找到驱动器上的媒体并将其发送给用户,可能使用 x-sendfile,由您决定。
【讨论】:
readfile。因此,如果你想实现 auth/counters/stats/whatever - 这是合乎逻辑的。
使用 .htaccess,您可以声明自己的条件。
【讨论】: