URL-адреса в кодировке URI с умлаутами, не работающими на другом Сервере

Мы собираемся переместить Веб-сайт нашей компании (Drupal 7) со старого Сервера A на новый Сервер B. Как обычно, мы экспортировали / импортировали базу данных и скопировали все файлы через ftp.

Поскольку наша компания находится в Германии, у нас есть несколько изображений, имена файлов которых содержат немецкие умлауты. CMS правильно URL-кодирует свой URI, чтобы существующий файл, такой как über uns.jpg представлена ​​такой разметкой:

<img src="http://<path to file>/%C3%BCber%20uns.jpg" />

Этот самый процесс работает на сервере A и B, но сервер B отвечает 404 Not Found, по точно такому же пути, для которого сервер A возвращает изображение.

Оба Сервера используют стандартную настройку "Лампа", в соответствии с которой программное обеспечение Сервера B обновлено (Apache 2.4, PHP 7.0), а Сервер A достаточно тихий (~5 лет).

Я ценю любую помощь и спасибо вперед!

1 ответ

Этот действительно сводил меня с ума! Я дважды проверил все возможные настройки локали и обнаружил, что для каждого из них был установлен UTF-8.

Самым странным было то, что: копирование / вставка URL в адресную строку браузера принесло 404. Но, напечатав тот же адрес без вставки из источника, мы получили изображение. В возвышенном тексте я имел "оба" URL-адреса (вставленный и напечатанный) в одном файле, отмечая первый и нажимая Ctrl-D Я не выбрал другой, поэтому URL-адреса не были одинаковыми, и я предполагаю, что были некоторые проблемы с порядком байтов, но это только предположение.

Поэтому причина, по которой мне все еще неясно, но я могу сказать, как я это исправил: я запустил FileZilla, загрузил каталог файлов на свой локальный компьютер и использовал его для загрузки и переопределения. Это было это.

Мой коллега, который изначально загружал и загружал все файлы, сохранял их на внутреннем сервере Mac перед загрузкой, и я предполагаю, что этот шаг каким-то образом испортил файлы, но, опять же, это всего лишь предположение.

Другие вопросы по тегам