Назад | Перейти на главную страницу

Регулярное выражение SetEnvIf для установки HTTP-заголовка Content-Disposition

Я пытаюсь использовать директиву 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\""

заключить его в кавычки. вздох.