我有一个文本文件的目录,我服务了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>