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

我有一个文本文件的目录,我服务了Apache 2.通常当我(或任何用户)访问文件,他们在浏览器中看到他们。 我想“强制”* Web浏览器popup一个“另存为”对话框。 我知道这是可以做的Content-Disposition标题( 更多信息 )。

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

理想情况下,我想这样的事情:

 <Directory textfiles> AutoAddContentDispositionHeaders On </Directory> 

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

像这样的东西可能是与Apache Header指令。

奖励点,如果它包括在debian站在阿帕奇。

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


*我知道,当涉及到networking时,你实际上无法强制

我发现,这是我想要的:

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

mod_headers应该是你在找什么:

 <IfModule mod_headers.c> <Location ~ ".*/textfiles/.*"> Header set Content-Disposition attachment </Location> </IfModule>