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

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

  • Автор: OpenCart
  • Модель: Свой robots.txt для каждого мульти-магазина.
  • Наличие: В наличии
  • 0₽



Доступные варианты

Количество
Файлы будут доступны после покупки

В стандартной установке 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';

на свое/свои значения

Теги: Opencart, SEO, Карта сайта, robots.txt

Совместимость
Система защиты Нет
Способ распространения Бесплатно
Версия OpenCart LiveStore 3.* OCStore 3.*
Версия PHP PHP 7.3 PHP 7.4
Активация Не требуется
VQmod Нет
Ocmod Нет
Events Нет

Будьте первым, кто оставит отзыв об этом товаре.

Написать отзыв

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