nginx - переписать правило для URL с разными регистрами и кодированными пробелами - PullRequest
1 голос
/ 15 марта 2019

Развертывание совершенно новой версии портала Мне нужно добавить несколько «старых» переписок, чтобы перенаправить все ссылки на прошлые документы на их новые версии.

Пара этих старых ссылок похожа на

http://sitename.com/media/pdf/MIXED%20FIL_E_Name_With%20spaces_and%20stuff-e324a.pdf

, в то время как их новый путь -

https://sitename.it/app/uploads/2019/03/mixed-fil_e_name-with-spaces_and-stuff-e324a.pdf.

. Я попытался переписать следующее безрезультатно.

rewrite ^/media/pdf/MIXED%20FIL_E_Name_With%20spaces_and%20stuff-e324a.pdf(.*) /app/uploads/2019/03/mixed-fil_e_name-with-spaces_and-stuff-e324a.pdf permanent;

rewrite ^/media/pdf/MIXED\%20FIL_E_Name_With\%20spaces_and\%20stuff-e324a.pdf(.*) /app/uploads/2019/03/mixed-fil_e_name-with-spaces_and-stuff-e324a.pdf permanent;

rewrite ^/media/pdf/MIXED\\\%20FIL_E_Name_With\\\%20spaces_and\\\%20stuff-e324a.pdf(.*) /app/uploads/2019/03/mixed-fil_e_name-with-spaces_and-stuff-e324a.pdf permanent;

Чего мне не хватает?

1 Ответ

0 голосов
/ 16 марта 2019

Директивы rewrite и location используют нормализованный URI.Зарезервированные символы уже были декодированы.Используйте буквенный пробел вместо %20, но заключите выражение в кавычки.

Например:

rewrite "^/media/pdf/MIXED FIL_E_Name_With spaces_and stuff-e324a.pdf" /app/uploads/2019/03/mixed-fil_e_name-with-spaces_and-stuff-e324a.pdf permanent;
...