我正在尝试使用IHS 7.0 / apache 2.2 SetEnvIf伪指令来设置基于url参数的下载文件的文件名。 我想我是非常接近,但是如果有一个空间(编码或其他)在文件名 – 它失败。
示例url:
http://site.com/path/to/filename.ext/file-title=Nice File Name.ext?file-type=foo
apacheconfiguration:
SetEnvIf Request_URI "^.*file-title\=(.*)\??.*$" FILENAME=$1 Header unset "Content-Disposition" Header add "Content-Disposition" "attachment; filename=%{FILENAME}e" UnsetEnv FILENAME
一个应用程序将指定在这个例子中现在显示为“Nice File Title.ext”的内容。 如果没有空格,这一切都很好,但是如果有空格,下载的文件名就会显示为“Nice”。 在查询string(?文件types等)中可能有也可能没有第二组参数,
好的 – 所以只留下正则expression式,并改变头添加了伎俩。
filename=\"%{FILENAME}e\""
把它用引号括起来。 叹。