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 перед загрузкой, и я предполагаю, что этот шаг каким-то образом испортил файлы, но, опять же, это всего лишь предположение.