Перейти к содержанию

Рекомендуемые сообщения

Здравствуйте. На сайте есть статья с сео урлом например "article1" и категория с сео урлом "cat1" в Яндекс вебмастере появились страницы такого вида site.ru/article1/cat1 и содержимым категории cat1 помеченные как дубли. Что это за х..ня? Это баг опенкарта и есть ли какое нибудь решение? И как вообще в ПС попали такие страницы, если нигде нет таких ссылок?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вопрос решен модулем 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Врожденный баг чпу в опенкарте. В версии 1.5. еще был, распространяется на категории и производителей, присутствует как при включенном штатном чпу формирователе, так и при включенном сео про.как пример демо сайт ocstore

производители https://demo.ocstore.com/delivery/apple

https://demo.ocstore.com/apple/delivery

категории https://demo.ocstore.com/desktops/mac/terms

https://demo.ocstore.com/terms/desktops/mac

можно подставить любой существующий урл от статей и не только от статей. пофиксить можно доработав сеопро, штатный наверняка тоже можно, но кому он нужен)

В индекс такие страницы попадают через счетчики метрики, аналитики и им подобные. при прямом посещении страницы кем-либо они скорее всего добавятся в индекс.

По хорошему надо бы не внешними модулями решать, а в сборке пофиксить, т.к. штука неприятная.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, Raino сказал:

Врожденный баг чпу в опенкарте. В версии 1.5. еще был, распространяется на категории и производителей, присутствует как при включенном штатном чпу формирователе, так и при включенном сео про.как пример демо сайт ocstore

производители https://demo.ocstore.com/delivery/apple

https://demo.ocstore.com/apple/delivery

категории https://demo.ocstore.com/desktops/mac/terms

https://demo.ocstore.com/terms/desktops/mac

можно подставить любой существующий урл от статей и не только от статей. пофиксить можно доработав сеопро, штатный наверняка тоже можно, но кому он нужен)

В индекс такие страницы попадают через счетчики метрики, аналитики и им подобные. при прямом посещении страницы кем-либо они скорее всего добавятся в индекс.

По хорошему надо бы не внешними модулями решать, а в сборке пофиксить, т.к. штука неприятная.

Совершено верно

Немного и по модулям пройдусь из-за этого бага ...

Есть такое дело практически у всех модулей этого класса (у которых есть ЧПУ свои) :)
А все от того что разработчики не придерживаются стандартов и требований opencart (addrewrite никто не отменял и в коде не удалял)
Модули этого класса обязаны иметь СВОИ не зависимые ЧПУ формирователи (как и задумывал Даниэль), а не патчить от лени стандартные.
Все от лени разработчиков или не хватки квалификации. А из-за патчей потом куча проблем совместимости и стабильности. Кстати это относится и к фильтрам тоже. То что чудят с SEO URL - ми это не куда не годится. И Google и Yandex давно плюют на мета тег canonical. Как они говорят потому что у 25% сайтов в мире он не правильный и поэтому мы сами "выбираем" основную страницу (замкнутый круг, как бы есть canonical для ПС, но они на него смотрят сквозь пальцы) :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но вы ж понимаете, что есть addrewrite - это хорошо
Но вот нет очереди(стека) для прямого образования.

Я было бы шикарно!!!
addRouteProduct

addRouteCategory

addRouteInformation

addRouteBlogCategory

AddRuteSystem - последний

Тогда можно добавить свой и роут и реврайт

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, chukcha сказал:

Но вы ж понимаете, что есть addrewrite - это хорошо
Но вот нет очереди(стека) для прямого образования.

Я было бы шикарно!!!
addRouteProduct

addRouteCategory

addRouteInformation

addRouteBlogCategory

AddRuteSystem - последний

Тогда можно добавить свой и роут и реврайт

 

Согласен было бы классно так
Но вполне нормально можно и при нынешнем коде с event и т п делать свои ЧПУ формирователи и обрабатывать через addrewrite
Лень просто :)
Или может действительно не хватает квалификации
Ну ладно там начинающим кодерам простительно, но когда я увидел что творит ведьма в MFP - это жесть вообще, она там парсила в JS URL и потом в JS их формировала с кучей хвостов дублей и т п.  И до сих пор к нормальному виду алгоритм формирования ЧПУ страниц фильтра не привела. Костыли и грабли.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, markimax сказал:

при нынешнем коде с event

Не получается, вызов ACTION 

На момент вызова action_pre_action еще нет событий (не обязательно)

но router->execute - не умеет события (в смысле он о них не знает)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
38 минут назад, markimax сказал:

Согласен было бы классно так
Но вполне нормально можно и при нынешнем коде с event и т п делать свои ЧПУ формирователи и обрабатывать через addrewrite
Лень просто :)
Или может действительно не хватает квалификации
Ну ладно там начинающим кодерам простительно, но когда я увидел что творит ведьма в MFP - это жесть вообще, она там парсила в JS URL и потом в JS их формировала с кучей хвостов дублей и т п.  И до сих пор к нормальному виду алгоритм формирования ЧПУ страниц фильтра не привела. Костыли и грабли.

Документации по opencart (как "фреймворку"(базы) для создание магазинов) мало. Поэтому каждый кодит как хочет.

Нужно - описание методов и класов, для чего они и как ими пользоваться при разработке.

 

Так как OC (очень напоминает CI) по коду, https://codeigniter.com/user_guide/libraries/email.html - можно на основе CI делать такую же документацию для OC.

 

Да и вечное шатание туда сюда самого кодеров это иногда подкачивает. Например:

$this->response->setOutput($this->load->view('common/header', $data));

return $this->load->view('common/header', $data);

Что это, что это выводит на екран ;) Но Response, зачастую используют когда нет своего представление (вюхи)... или нужно вывести, когда используются json-данные. (вроде так!)

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 $this->response->setOutput($this->load->view('common/header', $data));

return $this->load->view('common/header', $data); 

А вы не видите разницы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.