#Признаки проблемы и применимость
После переноса Битрикс главная открывается, но красивые адреса каталога и разделов возвращают 404. Проблема обычно связана с правилами веб-сервера, файлом urlrewrite.php, корнем сайта или параметрами ЧПУ конкретного компонента, а не с отсутствием самих товаров.
#Причины и отличительные признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Не перенесены правила перенаправленияНе перенесены правила перенаправления. /index.php открывается, /catalog/item/ даёт 404 | /index.php открывается, /catalog/item/ даёт 404 | Проверить .htaccess/try_files и конфигурацию сайта |
| Файл urlrewrite.php отсутствует или другойФайл urlrewrite.php отсутствует или другой. Правила Битрикс не обрабатывают запрос | Правила Битрикс не обрабатывают запрос | Сверить исходный файл и SITE_DIR |
| Изменился корневой каталогИзменился корневой каталог. Открывается чужой index.php или пустой сайт | Открывается чужой index.php или пустой сайт | Проверить DocumentRoot и сайт по домену |
#Пошаговая диагностика и исправление
- Зафиксируйте контрольные адресаЗапишите главную, каталог и одну карточку товара в новом домене. Уточните код ответа через браузер F12 → «Сеть»: настоящая 404 отличается от страницы Битрикс, показывающей сообщение при HTTP 200. Сравните доступность физического файла /bitrix/admin/ без изменения данных.
- Проверьте домен и корень хостаВ панели хостинга откройте конфигурацию нового домена и узнайте DocumentRoot. Сравните его с каталогом, где лежат index.php, bitrix и urlrewrite.php. Не меняйте корень сайта для нескольких виртуальных хостов одновременно.
- Сверьте файлы перенаправленияЧерез файловый менеджер посмотрите, присутствуют ли .htaccess (для Apache) и urlrewrite.php. Сравните с резервной копией; не заменяйте их файлами произвольной версии. Для Nginx правила обработки обычно находятся в конфигурации, .htaccess им не читается.
- Проверьте наличие записи для нужной страницыВ резервной копии urlrewrite.php и актуальном файле найдите правило для каталога/раздела. Не редактируйте действующий массив при отсутствии опыта. Правила могут быть созданы автоматически компонентами или системой.
- Проверьте параметры ЧПУ компонентаВ административном режиме компонента каталога сравните SEF_MODE, SEF_FOLDER и шаблоны адресов с прежней конфигурацией. Если после переноса сайт находится в подпапке, неверный SEF_FOLDER направит запрос по неправильному пути.
- Проверьте синтаксис настройки сервераЕсли вы управляете Apache на Linux, проверьте синтаксис без перезапуска и журнал ошибок при запросе. Для Nginx используйте nginx -t, но не применяйте это к чужому веб-серверу.
- Только Apache и администратор Linux; ожидается Syntax OK; команда не меняет конфигурациюLinux · Терминал (Bash)КомандаНужен sudoТолько Apache и администратор Linux; ожидается Syntax OK; команда не меняет конфигурацию.
sudo apachectl configtest
- Исправьте лишь выявленное правило и повторите адресаСначала примените правку на копии сайта, где известны два рабочих URL. После проверки и сохранения конфигурации разверните её на рабочем домене, очистите адресный кеш выбранного раздела и откройте три адреса. При ошибке восстановите прежнее правило из копии.
#Проверка результата
Главная, список и карточка отвечают правильными кодами, прямые ЧПУ-адреса не зависят от параметров тестового сеанса; редиректы не зацикливаются.
#Что делать, если не помогло
Если страница существует, но выдаёт внутреннюю 404, проверьте привязку компонента к инфоблоку и активность товара, а не только веб-сервер.