У меня есть следующие mod_rewrite
директива в моем lighttpd файл конфигурации:
url.rewrite-once = (
"foo.*$" => "static/foo.pdf",
)
Я бы хотел раздать такие URL-адреса: http://<server>/foo/r=ca2b912
(или аналогичный), чтобы я мог отслеживать происхождение ссылки в журнале доступа http.
Когда я вхожу http://<server>/foo/r=131ab42
Однако отображается диалоговое окно "Сохранить как", в котором предлагается назвать файл r=131ab42
(по крайней мере, при использовании Firefox). Я бы хотел, чтобы это предложение foo.pdf
как имя файла для сохранения. Это должно работать независимо от инструмента, обращающегося к URL-адресу (например, wget, IE и т. Д. Должны все сохранить файл как foo.pdf
).
Как я могу этого добиться? Я заметил, что Firefox исправляет имя файла при перезагрузке URL-адреса.
пожалуйста, обратите внимание: это первый раз, когда я хочу использовать правило перезаписи. Я сам пытался найти ответ, но безуспешно.
перезапись - это внутренняя операция сервера; пользователь не видит результата (если вы каким-то образом не выставили его вручную).
Вы можете попробовать Content-Disposition заголовок; но лучший способ - исправить ваши URL-адреса (т.е. иметь .../foo.pdf
с начала). Вы можете использовать правила перенаправления для миграции.
Вам просто нужно поставить префикс r=ca92b32
строка с ?
(например: http://<server>/foo/?r=ca93b32
)
Строка будет рассматриваться как параметр вместо имени файла и не будет рассматриваться как имя файла.