Форум русской поддержки Joomla!® CMS
03.12.2016, 17:48:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Некорректный rel="canonical" в категориях JoomShopping

 (Прочитано 1986 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Valeriomed
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« : 10.02.2015, 01:10:57 »

Приветствую всех участников форума!

Версии CMS: Joomla 3.3.6 с последней версией JoomShopping, SEF стандартный Joomla
Категории и подкатегории JoomShopping выведены с помощью меню Joomla

Столкнулся со следующей проблемой. В категориях и подкатегориях JoomShopping наблюдаю следующую картину

Реальный URL категории мой-сайт/new-car,
а href каноникала выглядит так: мой-сайт/new-car?layout=category

То есть ко всем категориям JoomShopping в этот тег дописывается вот эта приставка ?layout=category
То есть по сути каноническая страница ссылается на другой URL, что может вызвать проблемы с поисковиками

Прошу помощи или совета где копать

Спасибо
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #1 : 10.02.2015, 01:49:42 »

сайт?
Записан
Valeriomed
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #2 : 10.02.2015, 13:29:58 »

Вот на этих страницах, например
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #3 : 10.02.2015, 13:44:46 »

это пункты меню? если да - покажите как созданы.
Записан
Valeriomed
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #4 : 10.02.2015, 13:57:28 »

1. Сначала создан пункт меню JoomShopping Все категории или Магазин
2. Далее в компоненте JoomShopping созданы категории, прописаны алиасы
2. Потом создано меню Joomla и там созданы пункты категорий

 Тип пункта меню * - JoomShopping - Категория
 Категория ID * - проставляю ID категории
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #5 : 10.02.2015, 14:18:42 »

попробуйте для теста отключить все плагины группы jshopping и jshoppingcheckout. если поможет - то включайте по одному и смотрите что есть причиной
Записан
Biss
Завсегдатай
*****

Репутация: +64/-0
Offline Offline

Пол: Мужской
Сообщений: 659



« Ответ #6 : 10.02.2015, 14:38:53 »

Тоже заметил, но у меня пункты меню не на категории а на производителей и добавлено ?layout=man
Записан
Valeriomed
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #7 : 10.02.2015, 14:41:39 »

dmitry_stas спасибо, но к сожалению не помогло...

Что самое интересное в сайтах созданных на JoomShopping 4.6.0 Этой проблемы нет

А начиная с версии 4.8.1 и до актуальных версий проблема наблюдается

Возможно Joomla 3.3.6 SEF как то не согласован с роутером формирования ссылок JoomShopping выше 4.8.1

Ведь в старых версиях магазина при выводе его категорий в меню, на все типы пунктов меню была надпись "Товар" (в поле  "Тип пункта меню")
Теперь выводит правильно: Категория, Корзина и т.п.
Записан
Valeriomed
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #8 : 10.02.2015, 14:44:05 »

Biss,  drink

Хорошо, что я не один с такой проблемой тут, может вместе что-то и решим
Записан
Biss
Завсегдатай
*****

Репутация: +64/-0
Offline Offline

Пол: Мужской
Сообщений: 659



« Ответ #9 : 10.02.2015, 14:45:36 »

это не в плагинах дело. у меня на демо нет сторонних плагинов а каноникал прописывается тоже с layout=
Цитировать
Возможно Joomla 3.3.6 SEF как то не согласован с роутером формирования ссылок JoomShopping выше 4.8.1

Ведь в старых версиях магазина при выводе его категорий в меню, на все типы пунктов меню была надпись "Товар" (в поле  "Тип пункта меню")
Теперь выводит правильно: Категория, Корзина и т.п.
в этом что-то есть
« Последнее редактирование: 10.02.2015, 14:48:51 от Biss » Записан
Valeriomed
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #10 : 10.02.2015, 14:58:54 »

Просто для поисковиков это проблема, как по мне очень серьезная.

Страницы категорий (а это как правило ВЧ и СЧ запросы) получаются неканоническими и формально ссылаются на другой URL.
Так как мой-сайт/new-car и мой-сайт/new-car?layout=category это две разные страницы
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #11 : 10.02.2015, 14:59:07 »

не в плагинах дело

я ж не против Azn гадаю так сказать на кофейной гуще Azn

в этом что-то есть

о да, в этом однозначно что-то есть Azn отключите Joomla 3.3.6 SEF
Записан
Biss
Завсегдатай
*****

Репутация: +64/-0
Offline Offline

Пол: Мужской
Сообщений: 659



« Ответ #12 : 10.02.2015, 15:43:06 »

А что нам даст откл SEF?
Вобшем Google действительно ругался на на страници с одинаковым описанием, после чего я добавил в роботс
Disallow: /*?
После переиндексации предупреждения пропали.
Но не есть ли это ошибкой в компоненте или Joomla этот layout
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #13 : 10.02.2015, 15:54:34 »

А что нам даст откл SEF?

понятия не имею
гадаю так сказать на кофейной гуще
отключить и посмотреть на результат

я добавил в роботс
Disallow: /*?

не будут индексироваться вторые и дальше страницы категории и так далее
Записан
Biss
Завсегдатай
*****

Репутация: +64/-0
Offline Offline

Пол: Мужской
Сообщений: 659



« Ответ #14 : 10.02.2015, 16:05:33 »

Цитировать
не будут индексироваться вторые и дальше страницы категории и так далее
Тоже не есть хорошо dry

С откл SEF ссылка вида

/index.php?option=com_jshopping&view=manufacturer&layout=man&task=view&manufacturer_id=1&Itemid=113
Записан
Valeriomed
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #15 : 10.02.2015, 16:22:06 »

Ну да, тут же проблема, как я понимаю, что к URL после обработки SEF роутером, добавляется кусок URL без обработки

Вот "сырой урл"
/index.php?option=com_jshopping&view=manufacturer&layout=man&task=view&manufacturer_id=1&Itemid=113

Вот SEF URL
/adidas

В каноникал получается
/adidas&layout=man

С категориями аналогично,
то есть этот кусок
&layout=man
&layout=category
нормально не конвертируется в ЧПУ в rel=canonical
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #16 : 10.02.2015, 17:09:21 »

\plugins\system\sef\sef.php

Цитировать
if ($uri !== $link)
{
   $doc->addHeadLink(htmlspecialchars($link), 'canonical');
}

до так сказать нахождения более элегантного решения
Записан
Valeriomed
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #17 : 10.02.2015, 17:35:23 »

Да, как временное решение согласен, закомментировать указанную строку в \plugins\system\sef\sef.php
А на уровне шаблона категории и товара JoomShopping вручную вставить код выводящий правильный rel=canonical

Думал, может есть более легкое и "аккуратное" решение
Записан
tomat_ok
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 44



« Ответ #18 : 10.02.2015, 21:35:48 »

Надеюсь проблему решат, если использовать например компонент k2, то там каноникал прописывается правильно для всех страниц.
Записан
irc-h
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 168



« Ответ #19 : 11.02.2015, 17:10:59 »

эмм, а вы пункты меню как создавали? Через меню Joomla или через соответствующий адон ЖШ? Если все же через Joomla, то логично что у вас гючит.

P.S.-> Имею ввиду меню категорий и т.п.
Записан
Biss
Завсегдатай
*****

Репутация: +64/-0
Offline Offline

Пол: Мужской
Сообщений: 659



« Ответ #20 : 12.02.2015, 00:15:03 »

Да, с аддоном по ходу проблем таких не наблюдается, на счет канонических ссылок, но он не подходит по нескольким причинам.
Во первых есть некоторые ошибки, например в нем не работает очистка для фото которое выбирается для пункта меню.
Там же не сохраняет параметр *показать название пункта меню (да/нет)*
Не поддерживает других плагинов, например, у меня плагин флекс меню на шаблоне shape5
После сохранения пункта в меню билдер этот же пункт уже не откроется через меню Joomla изменить пункт меню...
Восстанавливал через базу, чтоб не создавать все заново.
И это не только в категориях и производителях по ходу роутер такой на всех видах меню.
Вот например еще пункт для id метки-

открывается url
домен/limitirovannye.html
для него канонический
/limitirovannye/products/label.html?label_id=7

Остается надежда на расширенные пункты от Linfuby, его еще не пробовал на 4-й версии.
А может добавлять в роботс просто Disallow: /?layout=
и т.д.
Записан
zeher
Осваиваюсь на форуме
***

Репутация: +11/-0
Offline Offline

Пол: Мужской
Сообщений: 121



« Ответ #21 : 12.02.2015, 00:21:08 »


Остается надежда на расширенные пункты от Linfuby, его еще не пробовал на 4-й версии.


ставил на 4-ую версию, поработал пару дней, потом все категории отдавали ошибку 500, разбираться времени не было и снес.
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #22 : 12.02.2015, 02:25:59 »

вообще строго говоря ошибка не в ЖШ, а в плагине SEF. во первых там условие
Код:
if ($uri !== $link)
никогда не бывает истинно.
во вторых, нет проверки на то, является ли страница пунктом меню. и не учтено то, что сколько бы параметров не имела ссылка в пункте меню - ссылка все равно будет SEF.
имхо, навскидку правильнее будет в плагине SEF заменить
Код:
$fakelink = 'index.php?' . http_build_query($parsed);
на
Код:
if (isset($parsed['Itemid'])) {
$fakelink = 'index.php?Itemid=' . $parsed['Itemid'];
} else {
$fakelink = 'index.php?' . http_build_query($parsed);
}
Записан
irc-h
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 168



« Ответ #23 : 12.02.2015, 16:42:12 »

Да, с аддоном по ходу проблем таких не наблюдается, на счет канонических ссылок, но он не подходит по нескольким причинам.
Во первых есть некоторые ошибки, например в нем не работает очистка для фото которое выбирается для пункта меню.
Там же не сохраняет параметр *показать название пункта меню (да/нет)*
Не поддерживает других плагинов, например, у меня плагин флекс меню на шаблоне shape5
После сохранения пункта в меню билдер этот же пункт уже не откроется через меню Joomla изменить пункт меню...
...
Решением может стать следующее: создаете пункт меню через аддон ЖШ, например в меню хиден -> Через меню Joomla создаете пункт меню в нужном вам месте "Системные ссылки":Псевдоним пункта меню. И уже этот пункт выводите в нужном вам месте шаблона/расширения с нужными настройками.

P.S.-> Или выводите рабочее меню как ссылки на уже существующее меню созданное через аддон ЖШ.
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #24 : 12.02.2015, 16:55:39 »

или исправить ошибку в Joomla Azn
Записан
Biss
Завсегдатай
*****

Репутация: +64/-0
Offline Offline

Пол: Мужской
Сообщений: 659



« Ответ #25 : 12.02.2015, 17:11:16 »

или исправить ошибку в Joomla Azn
Пробовал, исправил. Но этот хак так же влияет и на другие компоненты, например Kunena. Короче оставил пока все по старому.
« Последнее редактирование: 12.02.2015, 18:34:27 от Biss » Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #26 : 12.02.2015, 17:40:07 »

Цитировать
Но этот хак так же влияет и на другие компоненты, например Kunena
и что? там тоже должно быть все верно
Записан
zeher
Осваиваюсь на форуме
***

Репутация: +11/-0
Offline Offline

Пол: Мужской
Сообщений: 121



« Ответ #27 : 12.02.2015, 17:55:35 »


Код:
$fakelink = 'index.php?' . http_build_query($parsed);
на
Код:
if (isset($parsed['Itemid'])) {
$fakelink = 'index.php?Itemid=' . $parsed['Itemid'];
} else {
$fakelink = 'index.php?' . http_build_query($parsed);
}


в товаре каноническая ссылка указывает не на товар, а на его категорию (должно быть сайт/категория/товар, а выдает сайт/категория)
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #28 : 12.02.2015, 18:05:35 »

да, логично... значит возвращаемся к шагу http://joomlaforum.ru/index.php/topic,308210.msg1530600.html#msg1530600 Azn
Записан
zeher
Осваиваюсь на форуме
***

Репутация: +11/-0
Offline Offline

Пол: Мужской
Сообщений: 121



« Ответ #29 : 12.02.2015, 18:28:17 »

Код:
$str = $link;
$str = str_replace("?layout=category", "", $str);
if ($uri !== $link)
{
$doc->addHeadLink(htmlspecialchars($str), 'canonical');
}

сделал так, но на сколько это правильно не знаю, но пока работает )))
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet