如何在 apache 中为文件发送 Content-Disposition 标头?

Ama*_*rus 9 http http-headers apache-2.2

我有一个使用 apache 2 提供的文本文件目录。通常,当我(或任何用户)访问文件时,他们会在浏览器中看到它们。我想“强制”* Web 浏览器弹出“另存为”对话框。我知道这可能与Content-Disposition标题有关(更多信息)。

有没有办法为每个文件打开它?

理想情况下,我想要这样的东西:

<Directory textfiles>
   AutoAddContentDispositionHeaders On
</Directory>
Run Code Online (Sandbox Code Playgroud)

然后 apache 将设置正确的内容处置标头,包括使用相同的文件名。

使用 apacheHeader指令可能会发生这样的事情。

如果通过在 debian 中站在 apache 中包含它,则奖励积分。

我可以做一个简单的 PHP 包装器脚本,它接受一个filename参数,调用header(...)然后打印文件,但是我必须验证输入等。这是我试图避免的工作。


* 我知道当涉及到网络时,您实际上不能强迫事物

Ama*_*rus 13

我发现这符合我的要求:

<Location /textfiles>
    SetEnvIf Request_URI "^.*/([^/]*)$" FILENAME=$1
    Header set "Content-disposition" "attachment; filename=%{FILENAME}e"
    UnsetEnv FILENAME
</Location>
Run Code Online (Sandbox Code Playgroud)