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

Тема в разделе "Opencart - администрирование и технические вопросы", создана пользователем admin, 29 ноя 2017.

  1. admin

    admin Администратор Команда форума

    Встречаются случаи, когда нужно чтобы страница категории в Опенкарт отображалась как главная страница сайта. Для этого делаем следующее:

    В файле .htaccess

    После строки
    Код:
    RewriteBase /
    
    Добавьте следующую строчку.
    Код:
    RewriteRule ^/?$ index.php?route=product/category&path=6/ [L]
    
    Вместо " 6 " укажите id категории, товары которой будут отображаться на главной.


    Если установлен модуль 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://domen.ru/'
            ];
            if (rawurldecode($url) != rawurldecode($seo) && !in_array($url, $array_exclusion)) {
                $this->response->redirect($seo, 301);
            }


    Где "domen.ru" - это УРЛ вашей главной страницы сайта
     

Поделиться этой страницей