Свой robots.txt для каждого мульти-магазина.

Цена: бесплатно
Чтобы скачать этот бесплатный товар, его не нужно заказывать, просто войдите под своим логином.
Автор: Tom Написать автору
Нужна платная помощь? Написать техподдержке сайта
Совместимость:
LiveStore 3.*OCStore 3.*

В стандартной установке OpenCart файл robots.txt статичен и одинаков для всех магазинов внутри мульти-магазина. Это означает, что второй и третий магазин итд на отдельных доменах отдают роботу Sitemap с чужим доменом, а директива Host для Яндекса указывает не на тот сайт. Данный скрипт подменяет статический файл динамическим: при каждом запросе он сам определяет текущий домен и формирует корректный robots.txt именно для этого магазина.

Главное преимущество — поддержка мульти-магазинов без сложных настроек и установок модулей.
Один файл robots.php размещается в корне сервера и обслуживает все магазины одновременно. Каждый домен получает свой ответ:


Пример:
# shop-one.ru/robots.txt
Host: shop-one.ru
Sitemap: https://shop-one.ru/sitemap.xml

# shop-two.ru/robots.txt
Host: shop-two.ru
Sitemap: https://shop-two.ru/sitemap.xml

Никаких ручных правок под каждый домен — скрипт всё определяет сам из заголовка запроса.
Базовый набор правил (из коробки)

Скрипт уже содержит закрытые маршруты, типичные для любого магазина на OpenCart:
Личный кабинет, оформление заказа, партнёрская программа
Страница сравнения товаров и поиска
Системные директории: /system, /download, /storage
URL с параметрами: ?sort=, ?order=, ?limit=, ?filter=, ?tag=, ?tracking= и их &-варианты
Явное разрешение статики: CSS, JS, изображения, шрифты

Как добавить свою директиву:
Все правила хранятся в массиве $common_rules. 

Чтобы добавить нужный вам запрет, вставьте строку в массив:

// Закрыть страницу производителей
$common_rules = array(
    ...
    'Disallow: /*route=product/manufacturer',
    ...
);


Чтобы добавить страницы только для конкретного магазина, используйте $host_only:

// Закрыть особый раздел только на втором магазине
if ($host_only === 'shop-two.ru') {
    $lines[] = 'Disallow: /wholesale/';
}



Как удалить ненужную директиву:

Найдите строку в массиве $common_rules и удалите её. Например, если фильтрация по имени вам не нужна:

// Было — удалить эти две строки:
'Disallow: /*?filter_name=',
'Disallow: /*&filter_name=',


Как добавить правила только для Яндекса :
Блок для Яндекса формируется отдельно после общего. 
Добавьте свои директивы перед директивой Host -

// Дополнительно закрыть от Яндекса страницу акций
$lines[] = 'User-agent: Yandex';
$lines = array_merge($lines, $common_rules);
$lines[] = 'Disallow: /promo/';  // ← добавить здесь
if ($host_only) {
    $lines[] = 'Host: ' . $host_only;
}


Установка:
Скачайте и распакуйте архив multistore robots sitemap.zip
Загрузите robots.php в корень сайта по фтп
Переименуйте существующий robots.txt , например добавив к нему в конце нижнее подчёркивание  robots.txt_ (это отключит данный файл).

Добавьте правило в .htaccess до основного блока OpenCart:
Откройте файл htaccess , найдите строку   RewriteRule ^system/storage/(.*) index.php?route=error/not_found [L]
Ниже добавьте
RewriteRule ^robots\.txt$ robots.php [L]


Проверьте результат: 
Откройте https://ваш-домен/robots.txt в браузере или через инструменты Яндекс.Вебмастера.
И далее соответственно действующие под-магазины
https:// ваш-домен-2.ru /robots.txt
итд
Каждый роботс теперь должен указывать на отдельный сайтмап , host итд.


Совместимость
OpenCart 3.x / OcStore 3.x / LiveStore 3.x
PHP 7.0+
Apache с mod_rewrite
Работает за Nginx, Cloudflare и любым reverse proxy с заголовком X-Forwarded-Proto
Доступ к базе данных и панели администратора не требуется

Sitemap:
По-умолчанию в Opencart модуль сайтмап входящий в состав сборки, формирует sitemap.xml для каждого мульти-магазина свой. 
По этой причине его нет необходимости для этих целей изменять. 
Если же вы используете  сторонние модули формирования сайтмап, просто замените в строке 
$sitemap_url = $base_url . '/sitemap.xml';
на свое/свои значения


На кофе!
Способ распространения:
Бесплатно
Совместимость:
LiveStore 3.*OCStore 3.*
Версия PHP:
PHP 7.3PHP 7.4
Активация:
Не требуется
Получение файлов:
На сайте, в личном кабинете
Система защиты:
Нет
VQmod:
Нет
Ocmod:
Нет
Events:
Нет
Загружено:
06.05.2026
Обновление:
06.05.2026
Просмотров:
18

Написать

Ваше Имя:


Ваш отзыв: Внимание: HTML не поддерживается! Используйте обычный текст.

Оценка: Плохо           Хорошо

Введите код, указанный на картинке:




Чтобы скачать этот бесплатный товар, его не нужно заказывать, просто войдите под своим логином.


Ещё никто не оставил комментариев к записи.
Написать новый комментарий (для ответа пользуйтесь ссылкой под нужным комментарием)