PrestaShop изображения не отображаются, когда включен дружественный URL-адрес
После установки нового SSL сертификата и изменения версии PHP с 5.x до 7.1.28 изображения продуктов больше не отображаются в интерфейсе, инструменты Chrome dev показывают ошибку 404 для файлов изображений. Они отображаются в бэкэнде в разделе каталог продуктов.
Похоже, что каталог изображений отсутствует, т. е. что-то вроде /home-default/, потому что в HTML-коде файл изображения должен находиться непосредственно в корневом каталоге документа, что, очевидно, неверно.
Когда я выключаю "дружественный URL", изображения отображаются. Что я пытался до сих пор:
- Удаленный.реврайт, перешли дружественных URL для того, чтобы регенерировать .htaccess
- Очистил кэш и восстановил миниатюры изображений
- Переключился обратно на PHP 5.4
- Добавлено AllowOverride All в конфигурацию vhost
Ничего не помогает. На сервере есть еще одна установка PrestaShop, запускающая ту же версию PrestaShop 1.6.18 также под PHP 7.1.28, там "дружественный URL" отлично работает.
Должен сказать, я понятия не имею, где искать эту проблему.




Ответы - PrestaShop изображения не отображаются, когда включен дружественный URL-адрес / PrestaShop images not showing when friendly-URL is switched on

12.05.2019 10:29:34
Проведя некоторое время с @Harry, отлаживая его конфигурацию, мы нашли решение, и я уверен, что это поможет многим другим.
@Гарри использовал комбинацию с Nginx + Apache.
- Мы проверили его тема .htaccess файл и убедился, что RewriteEngine был включен и сработал правильно (например, страницы были правильно переписаны, только изображения не были) - все было в порядке.
- Мы попытались написать себе базовый рерайтер, чтобы перенаправить a .jpg и он не работал, показывая страницу Nginx 404.
- Мы пришли к выводу, что Nginx обрабатывает весь статический контент (JS, CSS, JPEG и т. д.) и не переадресовывать его на Apache.
Решение
Мы удалили эту часть из конфигурации Nginx:
location ~ ^/(.*\.(ac3|avi|bmp|bz2|cue|dat|doc|docx|dts|eot|exe|flv|gz|htm|html|img|iso|jpeg|mkv|mp3|mp4|mpeg|mpg|ogg|ppt|pptx|qt|rar|rm|swf|tar|tgz|ttf|txt|wav|xls|xlsx|zip))$ {
try_files $uri @fallback;
}
В качестве общего совета я бы предложил не использовать Apache+Nginx, PrestaShop уже очень хорошо работает с Nginx+PHP-FPM, и вы получите отличные выступления.
Если вы выберете это решение, не забудьте установить правила перезаписи PrestaShop непосредственно в Nginx (пример ).