мы собираемся перенести веб-сайт нашей компании (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 лет).
Я ценю любую помощь и заранее благодарю!
Этот действительно свел меня с ума! Я дважды проверил все возможные настройки локали и обнаружил, что для каждого из них задано значение UTF-8.
Самым странным было следующее: копирование / вставка URL-адреса в адресную строку браузера привело к ошибке 404. Но ввод того же адреса без вставки из источника вернул изображение. В Sublime Text у меня были »оба« URL-адреса (вставленный и напечатанный) в одном файле, отмечая первый и нажимая Ctrl-D
не выбрал другой, поэтому URL-адреса были разными, и я предполагаю, что были некоторые проблемы с порядком байтов, но это только предположение.
Причина, по которой мне до сих пор неясна, но я могу сказать, как я ее исправил: я запустил FileZilla, загрузил каталог файлов на свой локальный компьютер и использовал его для загрузки и переопределения. Вот и все.
Мой коллега, который изначально скачал и загрузил все файлы, хранившие их на внутреннем сервере Mac перед загрузкой, и я предполагаю, что этот шаг как-то испортил файлы, но, опять же, это всего лишь предположение.