Я пытаюсь использовать директиву SetEnvIf IHS 7.0 / apache 2.2, чтобы установить имя загружаемого файла на основе параметра url. Я думаю, что я довольно близок, однако, если в имени файла есть пробел (закодированный или иначе) - он не работает.
пример URL:
http://site.com/path/to/filename.ext/file-title=Nice File Name.ext?file-type=foo
Конфигурация apache:
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» в примере. Все это отлично работает, если нет пробелов, однако, если есть пробел, имя файла для загрузки будет отображаться как «Хорошо». В строке запроса может быть или не быть второй набор параметров (? Тип файла и т. Д.)
хорошо - поэтому оставив регулярное выражение в покое и изменив добавление заголовка, помогло.
filename=\"%{FILENAME}e\""
заключить его в кавычки. вздох.