Как убрать дубли страниц и настроить ЧПУ в OpenCart

Как убрать дубли страниц и настроить ЧПУ в OpenCart

Одно из первых что вы должны сделать после установки OpenCart — настроить ЧПУ и удалить дубли главной страницы. Данные настройки будем производить на ocStore версии 1.5.5. В данной сборке уже стоит русский язык и плагин SeoPro, что значительно упрощает работу и настройку интернет-магазина.

Настройка ЧПУ

Заходим в админку магазина, Система —> Настройки —> Изменить

Во вкладке Сервер, выбираем Включить ЧПУТип ЧПУ ставим SeoPro; ЧПУ товаров с категориями — тоже ДА; и окончание ЧПУуказываем .html
Сохраняемся

Теперь заходим через ftp или с помощью менеджера файлов своего хостинга к себе на сайт и файл .htaccess.txt переименовываем на просто .htaccess
Да, да! Именно с точкой впереди!

Проверяем работоспособность сайта, всё должно работать правильно и если вы заполняли (а вы это должны делать) в Категориях и Товарах графу SEO URL, то теперь вместо непонятных адресов типа …index.php?route=information/information&information_id=4 вы будете видеть: …avtokrjesla/avtokrjeslo-romer-kidfix-sict.html

Убираем дубли страниц

Хоть мы и установили ЧПУ в нашем магазине, а главная страница, почему-то отображается как
http://www.ваш_сайт/index.php?route=common/home
не порядок! Исправляем.

Для начала делаем ссылку на нашем логотипе не на указанный выше страшный адрес, а просто на www.ваш_сайт

Находим и редактируем файл:
ftp://www.ваш_сайт/system/library/response.php
строки:

public function output() {
if ($this->output) {
if ($this->level) {
$ouput = $this->compress($this->output, $this->level);
} else {
$ouput = $this->output;
}

if (!headers_sent()) {
foreach ($this->headers as $header) {
header($header, true);
}
}

echo $ouput;
}
}

и исправляем на:

public function output() {
if (!defined(‘HTTP_CATALOG’)) $this->output = str_replace(‘index.php?route=common/home’, », $this->output);
if ($this->output) {
if ($this->level) {
$ouput = $this->compress($this->output, $this->level);
} else {
$ouput = $this->output;
}

if (!headers_sent()) {
foreach ($this->headers as $header) {
header($header, true);
}
}

echo $ouput;
}
}

то есть, просто добавляем вторую строку:

if (!defined(‘HTTP_CATALOG’)) $this->output = str_replace(‘index.php?route=common/home’, », $this->output);

Теперь ссылка на логотипе ведет на наш сайт, НО почему-то при заходе на главную страницу адрес всё равно меняется на ужасные index.php?route=common/home

Что бы это исправить надо ещё отредактировать файл:
ftp://www.ваш_сайт/system/library/url.php
находим строки:

if ($args) {
$url .= str_replace(‘&’, ‘&’, ‘&’ . ltrim($args, ‘&’));
}

и после, добавляем строки:

else {
if($route == ‘common/home’) {
if($connection == ‘NONSSL’) { return HTTP_SERVER; }
else { return HTTPS_SERVER; }
}
}

Получается так:

if ($args) {
$url .= str_replace(‘&’, ‘&’, ‘&’ . ltrim($args, ‘&’));
}
else {
if($route == ‘common/home’) {
if($connection == ‘NONSSL’) { return HTTP_SERVER; }
else { return HTTPS_SERVER; }
}
}

Сохраняем изменения и вуаля! Теперь наша главная страница отображается нормально.

Ещё есть вариант подправить файл .htaccess что бы главная была без index.php или index.html и определится какое зеркало вашего сайта является главным с www или без www, но если мы произвели все выше указанные манипуляции, то у нас автоматически не существует index.php и .html, а с www или без, сейчас сами поисковики определяют очень хорошо и не стоит с этим заморачиваться.