Настройка ЧПУ в CMS Opencart 3

19-06-2020

После установки CMS Opencart наши url адреса товаров и категорий выглядят не правильно с точки зрения SEO. В данной статье мы изменим их на правильные варианты.

Для начала устанавливаем модуль SEO PRO для Opencart 3 (инструкция по установке есть на указанном сайте).

Переходим в корень сайта и переименовываем файл .htaccess.txt в .htaccess (без этого у вас ничего не запустится) Если ваш сайт находится на сервере хостинга, вам понадобится доступ FTP или воспользуйтесь диспетчером файлов в cPanel.

Открываем нашу админ часть и переходим в настройки магазина. Выставляем настройки как указано на картинке.

Image

 

Далее настраиваем правильный адрес главной страницы. Для этого существует много решений в виде модулей, но к сожалению все они для меня оказались не рабочими, если включен модуль SEO PRO для Opencart 3. Проблему удалось решить редактированием файла seo_pro.php (Находится по адресу: catalog / controller / startup). Необходимо добавить следующий код:

$seo=str_replace('index.php?route=common/home', '', $seo);

Вот как выглядет фрагмент куда надо вставить (у меня это 328 строка)

		if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
			$config_ssl = substr($this->config->get('config_ssl'), 0, $this->strpos_offset('/', $this->config->get('config_ssl'), 3) + 1);
			$url = str_replace('&', '&', $config_ssl . ltrim($this->request->server['REQUEST_URI'], '/'));
			$seo = str_replace('&', '&', $this->url->link($this->request->get['route'], $this->getQueryString(array('route')), true));
		} else {
			$config_url = substr($this->config->get('config_url'), 0, $this->strpos_offset('/', $this->config->get('config_url'), 3) + 1);
			$url = str_replace('&', '&', $config_url . ltrim($this->request->server['REQUEST_URI'], '/'));
			$seo = str_replace('&', '&', $this->url->link($this->request->get['route'], $this->getQueryString(array('route')), false));
			$seo=str_replace('index.php?route=common/home', '', $seo);
		}

На этом все. Теперь при переходе на главную страницу наш адрес без данной конструкции - index.php?route=common/home

Похожие статьи