Чтобы в 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 – это УРЛ вашей главной страницы сайта.