我正在尝试使用 IHS 7.0/apache 2.2 SetEnvIf 指令根据 url 参数设置下载文件的文件名。我认为我已经非常接近了,但是如果文件名中有空格(编码或其他) - 它会失败。
示例网址:
http://site.com/path/to/filename.ext/file-title=Nice File Name.ext?file-type=foo
阿帕奇配置:
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”。查询字符串中可能有或可能没有第二组参数(?file-type 等)
答案1
好的-因此,只需保留正则表达式并更改 Header 添加即可。
filename=\"%{FILENAME}e\""
用引号括起来。叹息。