#Признаки проблемы и применимость
После смены домена на Битрикс карточки товаров открываются, но фотографии получают 404, 403 либо загружаются со старого адреса. Нужно отличить сохранённые абсолютные ссылки, отсутствие файлов /upload и ошибочную настройку веб-сервера или CDN.
#Причины и отличительные признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| В шаблоне остались старые абсолютные адресаВ шаблоне остались старые абсолютные адреса. В коде страницы src указывает на прежний хост | В коде страницы src указывает на прежний хост | Исправить настройку шаблона/контент |
| Каталог загрузок не перенесёнКаталог загрузок не перенесён. Адрес /upload/... на новом домене даёт 404 | Адрес /upload/... на новом домене даёт 404 | Сверить резервный архив и перенос файлов |
| HTTPS/CDN не обслуживает изображенияHTTPS/CDN не обслуживает изображения. 403/ошибка TLS только у внешнего хоста | 403/ошибка TLS только у внешнего хоста | Исправить правила CDN и сертификат |
#Пошаговая диагностика и исправление
- Запишите конкретный адрес изображенияНа карточке товара нажмите правой кнопкой по сломанной фотографии → «Открыть изображение в новой вкладке». Запишите домен, путь и код ответа в F12 → «Сеть». Если ссылка ведёт на старый домен, проблема отличается от физического отсутствия файла.
- Проверьте существование файла в каталогеВ панели хостинга откройте файловый менеджер нового домена, найдите соответствующий путь относительно корня сайта, обычно /upload. Сравните файл с резервной копией. Не создавайте пустой файл с тем же именем ради устранения 404.
- Проверьте обычную загрузку нового изображенияВ административной панели Битрикс откройте товар из соответствующего инфоблока и загрузите небольшой тестовый файл в отдельное поле/тестовый товар. Если новый файл доступен, а старые нет — исследуйте перенос исходного каталога и ссылки. После теста удалите только созданную фотографию.
- Найдите место формирования старого доменаПросмотрите HTML-атрибут src и настройки шаблона компонента. Сравните с полями сайта в административной панели и параметрами CDN. Ищите абсолютный хост в пользовательском контенте и шаблонах, но не выполняйте массовую замену SQL без тестовой копии.
- Сверьте HTTP-ответ по обоим адресамЧерез SSH или собственный компьютер выполните запрос к известному публичному URL изображения, подставив настоящий адрес. 200 означает передачу ресурса, 301/302 — перенаправление, 403 — отказ, 404 — отсутствие. Команда ничего на сервере не меняет.
- Подставьте реальный URL без персональных данныхLinux · Терминал (Bash)КомандаПодставьте реальный URL без персональных данных. GET может отличаться от HEAD; при сомнении откройте в браузере.
curl -I --max-time 12 https://новый-домен.example/upload/путь/фото.jpg
- Восстановите только подтверждённо отсутствующие файлыЕсли структура каталога в архиве полная, на тестовом сайте скопируйте недостающие файлы с сохранением путей, не перезаписывая новые загрузки. Перед переносом проверьте права доступа и остаток места. При CDN выполните выборочную очистку кеша конкретного URL.
- Проверьте каталог по выборкеОткройте несколько старых карточек, одну новую и прямые адреса изображений через HTTPS. В инструментах разработчика убедитесь, что нет обращений к прежнему домену и ошибок сертификата. Если после правки отображается чужой товар, немедленно восстановите настройки источника изображений.
#Проверка результата
Прямые изображения и карточки каталога на новом домене открываются по HTTPS, новых обращений к старому домену нет; загрузка тестового файла тоже работает.
#Что делать, если не помогло
Если 403 появляется только через CDN, сравните правила кеширования, защиты и разрешения источника; если 404 и локально, восстановите исходные файлы и проверьте правила виртуального хоста.