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

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

Канонические ссылки для Joomla 3

 (Прочитано 32698 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« : 07.11.2012, 13:37:59 »

Что такое каноническая ссылка и об атрибуте rel="canonical".
Предлагаю решение для построения канонических ссылок(в комплекте com_content, com_contact, com_weblinks, плагин расширяем для других компонентов).
Плагин нужно тестировать, о багах и глюках, а также пожеланиях и прдлжениях прошу писать в этой теме.
Инструкция по подключению. Joomla 3.0
1. Скачиваете плагин.
2. Устанавливаете плагин.
3. Расширения менеджер плагинов - включаете плагин.
Плагин временно удален. В Joomla версии 3.1 на которой тестировал, неправильно работает роутер.
Можете убедится
ваш сайт/component/content/article.html?id=7 здесь 7 ид материала из админки
Код
$url = JURI::getInstance()->toString();
$uri = JURI::getInstance($url);
$query = JFactory::getApplication()->getRouter()->parse($uri);
var_dump($query );
выведет id='article' это ошибка должно быть в нашем случае  id='7'
Буду просматривать обновления поправят роутер перепишу плагин
« Последнее редактирование: 20.06.2013, 13:34:40 от Fedor Vlasenko » Записан
 
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #91 : 20.06.2013, 13:34:09 »

Поправил шапку с указанием ошибки. И мое личное мнение по поводу ссылок canonical. Решатся должно на уровне каждого компонента отдельно, не создавая лишних запросов
Записан
Abiladenda
Осваиваюсь на форуме
***

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

Сообщений: 187



« Ответ #92 : 20.06.2013, 22:20:07 »

В роутере Joomla 3.1.1 есть ошибка может из за этого не работает где то на форуме было об этой ошибке вот из того топика

ЗАМЕНИТЬ в версии 3.1.1 (377 строка)

->where($db->quoteName('alias'). ' = ' . $db->quote($db->quote($segment)));

на

->where($db->quoteName('alias'). ' = ' . $db->quote($segment) );
Записан
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #93 : 20.06.2013, 22:45:54 »

нет увы это другая ошибка  Angry в 2,5 нормально отрабатывает
Показать текстовый блок
Записан
Ingener
Завсегдатай
*****

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

Сообщений: 561


« Ответ #94 : 04.07.2013, 00:16:36 »

ЗАМЕНИТЬ в версии 3.1.1 (377 строка)

Напишите пожалуйста в каком файле заменить
Записан
Abiladenda
Осваиваюсь на форуме
***

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

Сообщений: 187



« Ответ #95 : 04.07.2013, 10:27:11 »

В файле /components/com_content/router.php
Вообще же все эти манипуляции нужны для того что бы убрать в кривых ссылках Joomla 3.1.1  id (номер перед именем ссылки)

Вот тут внизу все подробно описано

Код:
Откройте для редактирования файл: \administrator\components\com_content\config.xml
и в нем добавьте следующие строчки:

<field name="sef_advanced_link"
type="radio"
default="0"
label="Sef Advanced Mode"
description="Remove ItemID from Content URL?">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>



зайдите в Менеджер Материалов, нажмите на кнопку Настройки в правом верхнем углу, и перед вами откроется диалоговое окно, в котором мы можем увидеть новый параметр SEF Advanced Mode установить в - да

Если у кого-то будет выдавать ошибку после добавления данного параметра, то нужно в файле: /components/com_content/router.php

ЗАМЕНИТЬ в версии 3.1.1 (377 строка)

->where($db->quoteName('alias'). ' = ' . $db->quote($db->quote($segment)));

на

->where($db->quoteName('alias'). ' = ' . $db->quote($segment) );

А потом сделать описанное ниже
Второй метод

Любезно предоставил alex-leo. Редактируем файл Router.php находящийся в ваш_сайт/components/com_content/

Нажимаем CTRL+F (запускаем поиск) и ищем

     $params->get('sef_advanced_link',

должно найти 2 результата, первая примерно на 27й строке в функции function ContentBuildRoute(&$query) и вторая на 208й строке в функции function ContentParseRoute($segments). Если не находит, поищите по функциям или по номеру строк. И в найденных строках

    $advanced = $params->get('sef_advanced_link', 0);

меняем 0 на 1 в обоих строках.

Удаляем ID из адресной строки с помощью хака

Чуть ниже где то на 228й строке находим if (strpos($segments[0], ':') === false) { (можете через поиск)

     if (strpos($segments[0], ':') === false) {

          $vars['view'] = 'article';

          $vars['id'] = (int)$segments[0];

          return $vars;

     }

и комментируем все пять строк подряд начиная с /* и заканчивая */
Записан
kik84
Живу я здесь
******

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

Сообщений: 1340



« Ответ #96 : 14.07.2013, 18:03:53 »

В файле /components/com_content/router.php
Вообще же все эти манипуляции нужны для того что бы убрать в кривых ссылках Joomla 3.1.1  id (номер перед именем ссылки)

Вот тут внизу все подробно описано

Код:
Откройте для редактирования файл: \administrator\components\com_content\config.xml
и в нем добавьте следующие строчки:

<field name="sef_advanced_link"
type="radio"
default="0"
label="Sef Advanced Mode"
description="Remove ItemID from Content URL?">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>



зайдите в Менеджер Материалов, нажмите на кнопку Настройки в правом верхнем углу, и перед вами откроется диалоговое окно, в котором мы можем увидеть новый параметр SEF Advanced Mode установить в - да

Если у кого-то будет выдавать ошибку после добавления данного параметра, то нужно в файле: /components/com_content/router.php

ЗАМЕНИТЬ в версии 3.1.1 (377 строка)

->where($db->quoteName('alias'). ' = ' . $db->quote($db->quote($segment)));

на

->where($db->quoteName('alias'). ' = ' . $db->quote($segment) );

А потом сделать описанное ниже
Второй метод

Любезно предоставил alex-leo. Редактируем файл Router.php находящийся в ваш_сайт/components/com_content/

Нажимаем CTRL+F (запускаем поиск) и ищем

     $params->get('sef_advanced_link',

должно найти 2 результата, первая примерно на 27й строке в функции function ContentBuildRoute(&$query) и вторая на 208й строке в функции function ContentParseRoute($segments). Если не находит, поищите по функциям или по номеру строк. И в найденных строках

    $advanced = $params->get('sef_advanced_link', 0);

меняем 0 на 1 в обоих строках.

Удаляем ID из адресной строки с помощью хака

Чуть ниже где то на 228й строке находим if (strpos($segments[0], ':') === false) { (можете через поиск)

     if (strpos($segments[0], ':') === false) {

          $vars['view'] = 'article';

          $vars['id'] = (int)$segments[0];

          return $vars;

     }

и комментируем все пять строк подряд начиная с /* и заканчивая */


Мб буду немного не в тему, вдруг кому поможет... Сделал простые действия, дойдя до строчки "А потом сделать описанное ниже " — пропали id в ссылках и внезапно (для меня) дубли таких страниц как, например домен/статья-1 домен/сссстатья-1

П.С. Подскажите, после обновления придется заново вносить изменения?
Записан
Abiladenda
Осваиваюсь на форуме
***

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

Сообщений: 187



« Ответ #97 : 15.07.2013, 19:24:59 »

У меня все работает нормально, дублей быть не должно, если раньше страница была с id а после хака стала без id, то при наборе старой страницы должна быть 404. Вообще же ЗАМЕНИТЬ в версии 3.1.1 (377 строка) это известная ошибка Joomla 3.1.1 есть обсуждение по ней на Англоязычных форумах, и еще для Joomla 3.1.1 все манипуляции нужно выполнить до конца что бы хак заработал. А также проверял сайт на 404 ошибку все работает как надо после данного хака, то есть при вводе любого некорректного URL выдает 404, только если менять сам .html после точки и написать скажем .hhtml  тогда выдает непонятно что (у меня страницу хостинга), но думаю так и должно быть.
Записан
Ingener
Завсегдатай
*****

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

Сообщений: 561


« Ответ #98 : 15.07.2013, 22:10:23 »

ребята - а как Joomla 3.1.1 изменить алиас у статьи? НЕТ ТАМ ЭТОГО. Ткните носом кто нашел, или у меня глюк какой, ни в панели ни с морды
Записан
Abiladenda
Осваиваюсь на форуме
***

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

Сообщений: 187



« Ответ #99 : 15.07.2013, 23:06:29 »

в самой статье вкладка "параметры публикации" и первая строка сверху
Записан
Abiladenda
Осваиваюсь на форуме
***

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

Сообщений: 187



« Ответ #100 : 15.07.2013, 23:08:50 »

И по теме топика, отключать canonical в файле index.php шаблона не совсем фонтан, так как если к примеру стоит zoo каталог этот тег уберется и там а значит куча дублей, рабочий плагин для Joomla думаю правильное решение
Записан
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #101 : 15.07.2013, 23:33:48 »

Подождем пока поправят роутер. Я написал где ошибка в шапке, поправят роутер перепишу плагин
Записан
Ingener
Завсегдатай
*****

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

Сообщений: 561


« Ответ #102 : 15.07.2013, 23:43:58 »

"в самой статье вкладка "параметры публикации" и первая строка сверху"

ПАСИБ ПЛЮСАНУЛ
Записан
irc-h
Осваиваюсь на форуме
***

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

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



« Ответ #103 : 11.09.2013, 09:27:45 »

Пардон за оффтоп, но учитывая, что многие "ждут Яндекс" дабы узнать к чему привели их манипуляции с canonical, будет полезно:
Не стесняйтесь использовать разнообразные расширения Firefoxa, что бы посмотреть, что с вашей страницей. К примеру, есть бесплатный SEO Doctor (и многие другие), который позволяет, помимо всего прочего, увидеть запрет на индексацию при обычном просмотре страницы, т.е. тупо висит индикатор в адресной строке. ИМХО, это намного дешевле, чем узнать о том что обновление Joomla или Ваше ковыряние (особенно когда понадергали разные решения и бездумно применили их все и одновременно  Grin) выбило ваши страницы из индекса уже по факту.
Записан
irc-h
Осваиваюсь на форуме
***

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

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



« Ответ #104 : 12.09.2013, 10:00:58 »

В последней версии Joomla (на момент написания 3.1.5.) проблема с rel="canonical" частично решена.
Однако сразу же бросается в глаза, что морда остается не каноничной. Нашел решение на просторах рунета, которое позволяет обойти данный баг без отключения полезного плагина.
В файле Ваш_сайт/plugins/system/sef/sef.php находим строку 53, она выглядит: $doc->addHeadLink(htmlspecialchars($link), 'canonical');
и меняем ее на    $doc->addHeadLink(htmlspecialchars(str_replace("?view=featured",''",$link)), 'canonical');
После данного изменения главная вылазит из по запрета на индексацию.
Кто что думает по поводу данной правки?
« Последнее редактирование: 13.09.2013, 20:42:40 от irc-h » Записан
Abiladenda
Осваиваюсь на форуме
***

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

Сообщений: 187



« Ответ #105 : 12.09.2013, 15:03:02 »

Не понятно почему у Вас главная была без canonical при установленной Joomla 3.1.5, у меня с canonical без изменения вышеописанного метода, думаю что проблема в том что до сих пор многие не понимают куда пихать главную, в саму категорию или просто страница без категории, блог категории и т.д.
<link rel="canonical" href="http://bla-bla**.com/">
Записан
irc-h
Осваиваюсь на форуме
***

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

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



« Ответ #106 : 13.09.2013, 19:39:32 »

Пардон, уточни пожалуйста свою мысль.
В том то и дело, что главная страница стояла как не каноничная. Оригиналом считалась не сайт.ru, а сайт.ru/?view=featured (если память не изменяет), соответственно предложенная правка позволяет сделать так, что бы сайт.ru была доступна для индексации.

P.S.-> В моем случае в качестве главной стоит компонент e-торговли.
« Последнее редактирование: 13.09.2013, 20:04:16 от irc-h » Записан
Abiladenda
Осваиваюсь на форуме
***

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

Сообщений: 187



« Ответ #107 : 14.09.2013, 09:48:24 »

Мысль в том то и заключается что если главная cкажем ZOO блог категории в котором своя генерация ссылок canonical, или скажем главная от другого компонента в вашем случае Е-торговли, в котором возможно нет своей генерации canonical вот и начинаются проблемы Joomla вывода canonical, попробуйте главной сделать стандартную страницу Joomla и в нее скажем через loadposistion вывести ваш компонент, но не уверен что поможет, у меню отображается нормально главная и уже в эту страницу вставлен через loadposition и Widgetkit и RSForm и т.д.  и это при том что router от Joomla хакнутый для убирания id в ссылках.
Записан
irc-h
Осваиваюсь на форуме
***

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

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



« Ответ #108 : 17.09.2013, 16:54:37 »

Понял. Не уверен, что ваше решение мне подойдет, т.к. мне нужен в качестве главной компонент для формирования красивых URL... Блаж конечно. Сам компонент на главной я скрываю, т.к. данная функция вшита в используемый шаблон. В итоге у меня получается главная в виде набора модулей и без вышеописанного изменения она идет как no index, если же компонент не вешать на главную, то в принципе с URI я бы и придумал что-нибудь, но появится лишний раздел и с учетом копонента (joomshopping) он еще и криво отображается. В итоге, из того что я вижу, остается либо 301 редирект главного раздела компонента, либо поправить 1 строчку в SEF, мне пока что больше нравится 2й вариант.

P.S.-> Поправка в изменяемый код: в место "?view=featured", нужно вписать значение, которое используется именно у Вас (оно разнится в зависимости от того, что именно вы используете в роли главной).
Записан
volodkazaic
Осваиваюсь на форуме
***

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

Сообщений: 28


« Ответ #109 : 06.10.2013, 15:06:01 »

Понял. Не уверен, что ваше решение мне подойдет, т.к. мне нужен в качестве главной компонент для формирования красивых URL... Блаж конечно. Сам компонент на главной я скрываю, т.к. данная функция вшита в используемый шаблон. В итоге у меня получается главная в виде набора модулей и без вышеописанного изменения она идет как no index, если же компонент не вешать на главную, то в принципе с URI я бы и придумал что-нибудь, но появится лишний раздел и с учетом копонента (joomshopping) он еще и криво отображается. В итоге, из того что я вижу, остается либо 301 редирект главного раздела компонента, либо поправить 1 строчку в SEF, мне пока что больше нравится 2й вариант.

P.S.-> Поправка в изменяемый код: в место "?view=featured", нужно вписать значение, которое используется именно у Вас (оно разнится в зависимости от того, что именно вы используете в роли главной).
В последней версии Joomla (на момент написания 3.1.5.) проблема с rel="canonical" частично решена.
Однако сразу же бросается в глаза, что морда остается не каноничной. Нашел решение на просторах рунета, которое позволяет обойти данный баг без отключения полезного плагина.
В файле Ваш_сайт/plugins/system/sef/sef.php находим строку 53, она выглядит: $doc->addHeadLink(htmlspecialchars($link), 'canonical');
и меняем ее на    $doc->addHeadLink(htmlspecialchars(str_replace("?view=featured",''",$link)), 'canonical');
После данного изменения главная вылазит из по запрета на индексацию.
Кто что думает по поводу данной правки?
Добрый день. Подскажите случайно здесь ("?view=featured",''",$link) - ,''" не лишнее. Просто с этим белая страница, без этого все в порядке.
Записан
wfedin
Живу я здесь
******

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

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



« Ответ #110 : 06.10.2013, 16:36:27 »

Добрый день. Подскажите случайно здесь ("?view=featured",''",$link) - ,''" не лишнее. Просто с этим белая страница, без этого все в порядке.
Замени все " на одинарные '
Код
$doc->addHeadLink(htmlspecialchars(str_replace('?view=featured','',$link)), 'canonical');
Записан
irc-h
Осваиваюсь на форуме
***

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

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



« Ответ #111 : 06.10.2013, 18:18:23 »

У меня с "" нормально работает, ИМХО синтаксис не важен, можно использовать как " ", так и ' '.
Скорее проблема в том, что каноничной считается не "?view=featured", т.к. данное значе6ние стоит, только когда в качестве главной стоят избранные статьи (по умолчанию при установке joomla), нужно просто посмотреть свою страницу и подставить нужное значение.
« Последнее редактирование: 06.10.2013, 18:40:47 от irc-h » Записан
wfedin
Живу я здесь
******

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

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



« Ответ #112 : 06.10.2013, 23:03:33 »

синтаксис не важен, но " и '' не одно и тоже...

Вот и получается, что аккуратность не лишена смысла  Wink
« Последнее редактирование: 06.10.2013, 23:14:53 от wfedin » Записан
wfedin
Живу я здесь
******

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

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



« Ответ #113 : 07.10.2013, 00:58:23 »

Только я в 3.1.5 всёравно вижу в каноникал на внутренних страницах совершенно нелепые ссылки если к примеру открыть статью оставив в адресе лишь её ИД.
Записан
Fedor Vlasenko
Профи
********

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

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


Все начинается с Value


« Ответ #114 : 07.10.2013, 02:04:50 »

Создание плагина SEF отвечающий за вывод канонических ссылок - это одна из не успешных затей разработчиков по борьбе с дублями страниц.
Советую вам отключить плагин и решать с выводом тега на уровне компонента который отвечает за формирование ссылки. Это будет самый правильный вариант. А не жалкая попытка решить все одним плагином.
Записан
germes
Новичок
*

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

Сообщений: 7


« Ответ #115 : 07.11.2013, 12:58:12 »

Добрый день. Ситуация такая. Яндекс не хочет индексировать основные страницы сайта, считает их неканоническими. В инедкс из за этого почти ничего не попадает. Сайт построен так, есть главная страница, на которую попадают "избранные материалы" из разных категорий. Так вот например во всех материалах из category-1 присутствует тег : <link href="http://site.ru/category-1.html" rel="canonical" />
Кто может помочь (платно) правильно настроить индексацию и сделать так, чтобы новые материалы появлялись в индексе?

Данные системы:
Joomla! 3.0.3 Stable [ Ember ] 04-February-2013 14:00 GMT

Включить SEF (ЧПУ) - Да
Перенаправление URL - Да
Добавлять суффикс к URL - Да

мои контакты: skype: ggermessss icq: 592273184
Записан
Sklad-Znaniy
Осваиваюсь на форуме
***

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

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


Склад-Знаний.RU


« Ответ #116 : 10.11.2013, 23:11:51 »

так понимаю не нужно ничего платно заказывать.
 в JED сегодня появился плагин, который судя по описанию решает нашу проблему (у меня такая тоже есть), плюс он бесплатный и от известного разработчика.
http://extensions.joomla.org/extensions/site-management/seo-a-metadata/url-canonicalization-/25795
Сейчас поставлю и буду пробовать
Записан
irc-h
Осваиваюсь на форуме
***

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

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



« Ответ #117 : 25.12.2013, 18:54:59 »

Ииии как плагин? Читал на форуме, что он работает только с родным com_content.
И в последнюю обнову что-то впихнули, т.к. главная выходит из-под canonical сама, без ухещрений, однако дальше все так же печально как и было.
Записан
cment1
Новичок
*

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

Сообщений: 4


« Ответ #118 : 26.01.2015, 19:33:53 »

А кто знает как быть с rel="canonical" в ZOO? Сайт J 3.0.3 + ZOO 3.0.10 в SEF.php строка закомментирована, но в коде вот такое:
Показать текстовый блок

Может это и нормально? Если нет, то подскажите пожалуйста как избавиться?
В общем для каталога ZOO после обновы его надо править отдельно от шаблонов и прочей шелухи!
Идем по пути: /components/com_zoo/controllers далее открываем для правки файл default.php находим там строку add canonical у меня она 129я и просто коментируем ее затем чистим кэш и вуаля готово!)))
Записан
iRaptor
Осваиваюсь на форуме
***

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

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



« Ответ #119 : 25.02.2015, 18:57:52 »

в Joomla 3.4 вроде убрали canonical
Записан
Hol1killer
Давно я тут
****

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

Сообщений: 227


« Ответ #120 : 01.03.2015, 21:53:55 »

в Joomla 3.4 вроде убрали canonical
На правильном URL теперь каноникал не показывается, а если добавить параметр к URL то он подставляется.

Единственное, что в постраничной навигации каноникал работает Неправильно, он со всех страниц пагинации указывает на 1-ую страницу что в корне не верно по словам Google. Что мне кажется серьезный баг в 3.4 и приходится отключать в сайтах с постраничной навигации и лучше не рисковать.
Записан
Страниц: 1 2 3 [4] 5   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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