Как решить вопрос пробелов и русских букв в имени файла?
С помощью Image Uploader (для Windows) выгружаю по FTP (на свой сервер vsFTPd) разные файлы в подкаталог, где находится папка домена, который управляется на одном сервере с помощью nginx. Сервер на Debian 12.
И когда выгружается файл с пробелами, то наблюдаю, что они заменяются нижним подчёркиванием. Image Uploader после выгрузки выдаёт автоматически URL. Например
https://mysite.com/imgupl/iu/953790755_%D0%94%D0%B5%D0%B8%D0%BD%D1%81%D1%82%D0%B0%D0%BB%D0%BB%D1%8F%D1%82%D0%BE%D1%80.html
Где число до подчёркивания это рандомный ID, остальное слово Деинсталлятор, согласно URI.
Соответственно файл при попытке скачать, выдаёт 404, потому что на диске файл с подчёркиванием и нормальной кириллицей.
Вопрос - как сделать, чтобы nginx принимал файлы, как есть? Или хотя бы перекодированными в URI.
Конфиги чистил практически до нуля. Хотя у меня и там минимальный набор в 5 строчек.
Ответы (1 шт):
Вопрос - как сделать, чтобы nginx или apache (хотя бы одно из двух) принимал файлы, как есть?
Он и принимает "как есть". Просто никакой кириллицы в урлах не существует.
В apache русские символы превращаются при выгрузке в такое "Деинсталлятор" Т
Это проблемы с перекодированием. Имена файлов написаны win-1251, а аппач выдаёт в UTF8.
Или хотя бы перекодированными в URI.
Для этого нужно файлы загружать через php-скрипт (или что-то подобное), который будет этим заниматься (транслитерировать).
А вообще лучше обзавестись правильной привычкой давать файлам названия в латинице без пробелов.