我想强制浏览器下载RSS-Feed内链接的所有文件,RSS源是由php脚本创建的。
因此,我需要更改这些文件的HTTP标头并设置
header("Content-Disposition: attachment; filename=$file");
(也许还有其他一些变化)。
目前,我尝试使用设置这些参数的下载脚本来执行此操作。
但是,这种方法的缺点是,我必须链接到"download.php"而不是"target.file",这在某种程度上会误导用户。此外,我必须向用户透露内部文件路径或使用相当多的 GET 变量。
如果可以更改生成RSS源的脚本中的HTTP标头,那就更好了。有没有办法实现这一目标?
您无法从 RSS 源内部更改标头。但是,您可以使用一些重写魔法隐藏download.php
部分:
RewriteEngine on
RewriteRule ^download/.*$ /download.php?file=$1 [L]
这将导致任何以 /download/
开头的 URL 通过下载脚本运行:
-
/img/foo.jpg
- 普通文件 -
/download/img/foo.jpg
- 强制下载
你也可以在没有PHP的情况下做类似的事情:
RewriteEngine on
RewriteRule ^download/.*$ /$1 [L]
<Location /download>
Header add Content-Disposition "attachment"
</Location>