Как сделать страницу категории главной. Opencart

Чтобы в Opencart определить страницу категории как главную (домашнюю), надо проделать следующее.

Открываем файл .htaccess и после строки

RewriteBase /

Вставляем следующую строку

RewriteRule ^/?$ index.php?route=product/category&path=111/ [L]

где, 111 – это id категории, которую нужно определить как главную страницу, то есть нужно указать свою.

Если установлен SeoPro

Если установлен модуль SeoPro и правило не работает, а сервер отдает код ответа 301 вместо «внутреннего» редиректа с кодом 200, необходимо сделать следующее:

Открываем файл \catalog\controller\common\seo_pro.php, метод validate().

private function validate() {
        if (isset($this->request->get['route']) && $this->request->get['route'] == 'error/not_found') {
            return;
        }
        if(empty($this->request->get['route'])) {
            $this->request->get['route'] = 'common/home';
        }
        if (isset($this->request->server['HTTP_X_REQUESTED_WITH']) && strtolower($this->request->server['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
            return;
        }
        if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
            $url = str_replace('&', '&', $this->config->get('config_ssl') . ltrim($this->request->server['REQUEST_URI'], '/'));
            $seo = str_replace('&', '&', $this->url->link($this->request->get['route'], $this->getQueryString(array('route')), 'SSL'));
        } else {
            $url = str_replace('&', '&',
                substr($this->config->get('config_url'), 0, strpos($this->config->get('config_url'), '/', 10)) // leave only domain
                . $this->request->server['REQUEST_URI']);
            $seo = str_replace('&', '&', $this->url->link($this->request->get['route'], $this->getQueryString(array('route')), 'NONSSL'));
        }
        if (rawurldecode($url) != rawurldecode($seo)) {
            $this->response->redirect($seo, 301);
        }
    }

И добавляем исключение:

$array_exclusion = [
            'http://site.com/'
        ];
        if (rawurldecode($url) != rawurldecode($seo) && !in_array($url, $array_exclusion)) {
            $this->response->redirect($seo, 301);
        }

Где site.com – это УРЛ вашей главной страницы сайта.

Оцените статью
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии