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

Перезапись URL-адреса загрузки, но в диалоговом окне «Сохранить как» отображается исходный URL-адрес

У меня есть следующие 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)

Строка будет рассматриваться как параметр вместо имени файла и не будет рассматриваться как имя файла.