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

Apache обслуживает файлы с другим кодированием URL

У меня возникает ошибка при попытке загрузить изображение файла на свой промежуточный сервер, похоже, это касается кодирования. Когда я получаю доступ к следующему URL:

http://example.com/sites/default/files/2016-12/Articulaci%C3%B3n.jpg

Apache выдает ошибку 404 (не найдено), файл существует и имеет имя "Articulación.jpg".

Но если я попытаюсь загрузить файл изображения по следующему URL-адресу:

http://example.com/sites/default/files/2016-12/Articulacio%CC%81n.jpg

На моем локальном сервере (разработка) работают оба URL-адреса, я вижу изображение, как и ожидалось.

Мой сервер разработки - это установка MAMP:

Мой промежуточный сервер - это сервер Centos:

Я думаю, что это своего рода сопоставление URL-адресов или резервное поведение кодирования apache, возможно, модуль, расширение или конфигурация сервера падают / отсутствуют на моем промежуточном сервере.

URL-адреса имеют две разные кодировки UTF-8 для ó персонаж. Первый %CC%81 а второй %C3%B3. Вам нужно выяснить, почему URL-адреса разные на каждом сервере, и убедиться, что они совпадают.

Итак, некоторые настройки на вашем сервере разработки заставляют его кодировать URL-адрес другим способом. Это может быть связано с разницей в версии PHP или набором символов / кодировкой, используемыми в PHP.

Другая возможность заключается в том, что Mac OS менее строга к именам файлов и может сопоставлять один и тот же файл с разными кодировками.