将下载重定向到其他位置但保留 URL

将下载重定向到其他位置但保留 URL

我正在尝试弄清楚如何在我的网站上放置一个链接,以允许访问者下载文件,例如https://www.website.com/file.zip但该文件实际上位于https://255.255.255.255/actual_file.zip

我还没有尝试任何事情,因为我无论如何都无法从假设、理论或实践上弄清楚。

是的,我确实使用过谷歌。

答案1

有很多方法可以做到这一点,取决于您的服务器支持什么。

鉴于您在问题中列出了 php 和 html 作为标签,我将把这个答案限制在这些标签上,但我认为 apache 在其后面运行,也可以使用。

基本上,您要做的是创建一个重定向到新 URL 的脚本或页面。

最简单、最优雅的选择是使用 php,所以我将从这个开始。

例如,您可以创建一个新页面,名为,download.php并在其中转发到 URL。我可以编写一个带有安全检查等的完整选择器脚本,但这超出了这个问题的范围,在 Stack Overflow 上也更合适。

<?php
    $file = $_GET['file'];
    header("Location: https://255.255.255.255/".$file);
?>

请注意,编写新标题要求脚本之前没有输出,否则任何输出都会将标准标题写入页面,并且标题命令将不起作用。

您现在可以创建如下超链接:

<a href="https://www.example.com/download.php?file=actual_file.zip">Download</a>

HTML 要求每个文件都有一个页面,并需要标记来重定向到下载。这意味着 URL 会发生变化,但可以通过这些页面来控制文件。

最后,可以使用 htaccess 来屏蔽 download.php 文件。

此外,htaccess 也可以在没有 php 脚本的情况下完成所有操作,但同样,不确定您是否正在使用 Apache。

相关内容