Канонические страницы - phpBB Canonical URL & Topic SEO hook

Простое избавление от дублей страниц на форуме и тег canonical для полезных страниц

Здесь вы можете скачать и получить поддержку по модам, созданным командой нашего сайта. Пожалуйста, не пишите и не задавайте вопросов, связанных с чужими разработками, используйте для этого форум ниже.
Shredder
Администратор
Сообщения: 1054
Зарегистрирован: 22.08.13 09:05

Shredder » 25.01.15 07:39

Решение предназначено для тех, кому не нужен ЧПУ и кто не хочет устанавливать для этого сложный мод Ultimate SEO URL, но при этом хочет избавить свой форум от дубликатов страниц.

hook_mini_seo_1_0_2.zip
(1.08 КБ) Скачиваний: 1061

Этот хук меняет адреса тем с формата viewtopic.php?f=2&t=1 на viewtopic.php?t=1 (убирает идентификатор форума) и заодно добавляет тег Canonical для всех полезных страниц конференции. Отсутствие идентификатора форума в адресах тем гарантирует, что при перемещении из одного раздела в другой не будут плодиться дубли страниц.

Если кому-то нужен отдельно хук для создания канонического тега (без изменения адресов тем), то вот он:
hook_canonical_1_0_0.zip
(729 байт) Скачиваний: 1006

Установка очень проста:
1) Распаковать и скопировать нужный вам хук в папку includes/hooks
2) Очистить кеш на главной странице администраторского раздела форума.

Вместе использовать эти хуки не нужно.

Важные замечания по поводу установки hook_mini_seo:
Не забудьте отредактировать robots.txt для соответствия новому формату ссылок. Если в вашем robots присутствует правило Disallow: /viewtopic.php?t=*, то уберите его и замените на Disallow: /viewtopic.php?f=*. Подробнее о robots и правилах его составления читайте в соответствующей теме: robots.txt для форума phpbb
Если ваш форум не новый и уже был проиндексирован поисковиками, то вам также будет нужно сделать перенаправление (редирект) со старых адресов на новые, чтобы не потерять вес страниц. В этом случае не нужно добавлять правило Disallow: /viewtopic.php?f=* в роботс. Один из вариантов сделать редирект со старых страниц - добавить в .htaccess форума следующий код:

Код: Выделить всё

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} (.*)f=([0-9]+)&t=(.+) [NC]
RewriteRule ^viewtopic\.php$ viewtopic.php?%1t=%3 [R=301]

Если форум находится не в корневой папке домена, а в подкаталоге, то обычно бывает достаточно изменить RewriteBase / на относительный путь к вашему форуму от корневой папки - например, RewriteBase /forum/ для папки с именем forum. Если этот вариант не сработает, то поищите решение в интернете, т.к. по серверным редиректам я не ас, для разных конфигураций сервера они могут отличаться.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.

igorbond
Сообщения: 81
Зарегистрирован: 13.07.14 03:07

igorbond » 25.01.15 14:15

Добавил себе хук, появилась строка:

Код: Выделить всё

<link rel="canonical" href="http://сайт.ru/forum/viewtopic.php?f=120&amp;t=4947" />

хотя сама эта страница имеет адрес: сайт.ru/forum/viewtopic.php?f=120&t=4947
Так и должно быть? И почему произошло изменение страницы? И будет ли это измененной страницей для поисковика или нет?

Shredder
Администратор
Сообщения: 1054
Зарегистрирован: 22.08.13 09:05

Shredder » 25.01.15 15:07

В соответствии с правилами HTML, все амперсанды & в исходном коде должны быть перекодированы в &amp; - это не только не будет плохо для поисковика, но и необходимо.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.

igorbond
Сообщения: 81
Зарегистрирован: 13.07.14 03:07

igorbond » 25.01.15 15:10

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

malkin
Сообщения: 2
Зарегистрирован: 23.03.15 21:11

malkin » 23.03.15 21:19

Час добрый. У меня установлен портал site.ru и сам форум site.ru/index.php
При заходе на форум и проверки исходного кода:
<link rel="canonical" href="http://profftorrent.ru/" />
Не подскажите что в файле надо исправить?

Shredder
Администратор
Сообщения: 1054
Зарегистрирован: 22.08.13 09:05

Shredder » 24.03.15 16:27

В хуке найти:

Код: Выделить всё

		case 'index':
			$canonical = generate_board_url() . '/';
		break;

Заменить на:

Код: Выделить всё

		case 'index':
			$canonical = generate_board_url() . "/index.$phpEx";
		break;

		case 'portal':
		case 'home':
			$canonical = generate_board_url() . '/';
		break;

Очистить кеш форума.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.

malkin
Сообщения: 2
Зарегистрирован: 23.03.15 21:11

malkin » 24.03.15 18:03

Shredder писал(а):Заменить на:

Здорово. Теперь все отлично работает и правки не нужны ;)

Добавлено спустя 14 часов 21 минуту 58 секунд:
Shredder писал(а):В соответствии с правилами HTML, все амперсанды & в исходном коде должны быть перекодированы в &amp; - это не только не будет плохо для поисковика, но и необходимо.

Отписался в Яндекс. Они написали:
Здравствуйте, Ленар!

Используйте <link rel="canonical" href="http://profftorrent.ru/viewtopic.php?f=30&t=69" />, экранировать амперсанд не нужно.

Есть возможность новый вариант хука сделать?

Shredder
Администратор
Сообщения: 1054
Зарегистрирован: 22.08.13 09:05

Shredder » 25.03.15 14:59

Спасибо, не стоит. Во всём интернете традиционно используется экранированный амперсанд, никто ещё от этого не пострадал.

Но вы можете сами его "разэкранировать", открыв хук и удалив лишние элементы, делов там на 5 секунд.

Добавлено спустя 16 минут 29 секунд:
Только примите к сведению, что все остальные ссылки в форуме тоже "неправильные", нужно и их исправить. Иначе можете вылететь из поиска Яндекса ;)
Вложения
1.png
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.

Xisp
Сообщения: 196
Зарегистрирован: 05.04.14 18:00

Xisp » 25.03.15 16:06

экранировать амперсанд не нужно.


Вот это номер...

Shredder
Администратор
Сообщения: 1054
Зарегистрирован: 22.08.13 09:05

Shredder » 25.03.15 20:40

Xisp писал(а):Вот это номер...

Это новые правила от колхозников из Яндекса. Срочно переделывать весь интернет, чтоб он лучше индексировался и из поиска ненароком не выпал!
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.

Shredder
Администратор
Сообщения: 1054
Зарегистрирован: 22.08.13 09:05

Shredder » 26.06.15 10:50

Выпущена новая версия hook_mini_seo - 1.0.1. Для обновления замените хук и очистите кеш.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.

itww
Сообщения: 10
Зарегистрирован: 08.09.15 23:31

itww » 08.09.15 23:36

Shredder писал(а):Решение предназначено для тех, кому не нужен ЧПУ и кто не хочет устанавливать для этого сложный мод

А если в user blog mod включены сео-ссылки вида: http//:my.site.ru/мой блог бла-бла-бла?

Shredder
Администратор
Сообщения: 1054
Зарегистрирован: 22.08.13 09:05

Shredder » 09.09.15 16:56

itww
Мод блогов и его ссылки данных хук никак не затрагивает, их можно использовать вместе.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.

itww
Сообщения: 10
Зарегистрирован: 08.09.15 23:31

itww » 09.09.15 23:06

Если форум находится не в корневой папке домена, а в подкаталоге, то обычно бывает достаточно изменить RewriteBase / на относительный путь к вашему форуму от корневой папки - например, RewriteBase /forum/ для папки с именем forum. Если этот вариант не сработает, то поищите решение в интернете, т.к. по серверным редиректам я не ас, для разных конфигураций сервера они могут отличаться.

У меня форум расположен так: domenname/www (в папке www). Тоесть у вас бы это было бы так: /phpbb-work.ru/www. Какая должна быть запись пути к форуму в .htacess?

Добавлено спустя 6 минут 24 секунды:
И если есть самописная карта форума html-её нужно удалить, или оно средиректится?

Xisp
Сообщения: 196
Зарегистрирован: 05.04.14 18:00

Xisp » 09.09.15 23:15

itww писал(а): Какая должна быть запись пути к форуму в .htacess?


Очевидно, что

Код: Выделить всё

RewriteBase /www/


itww писал(а):И если есть самописная карта форума html


В смысле самописная?

Ответить