SEO-оптимизация для ссылок на темы форума

Простой способ убрать параметр f= из адресной строки

Любые дополнения, требующие модификации исходного кода.
Shredder
Администратор
Сообщения: 1067
Зарегистрирован: 22.08.13 09:05
Благодарил (а): 132 раза
Поблагодарили: 264 раза
Контактная информация:

SEO-оптимизация для ссылок на темы форума

Сообщение Shredder »

В phpBB 3.1 для индексируемых поисковиками страниц форума "прямо из коробки" появился тег canonical. Для тем он содержит параметр t=, но не содержит f=. Казалось бы, это хорошо для SEO, но не тут-то было! Авторы движка не позаботились о том, чтобы убрать параметр f= из всех ссылок на темы форума, и, глядя на такое безобразие, СЕО-шникам остаётся только плакать, т.к., во-первых, мы по-прежнему имеем не оптимизированные ссылки, и при переносе тем из одного раздела в другой будут плодиться дубли, а, во-вторых, различие самой ссылки и её канонического тега в теории может обернуться нежелательными последствиями. К счастью, ликвидировать этот f= сразу на всех страницах довольно просто, и не обязательно перекапывать весь код, вырезая f= из каждой его части.

ВНИМАНИЕ: данный патч более не актуален. Используйте вместо него расширение.

Открываем includes/functions.php

Находим:

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

		$template->display('body');
Меняем на:

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

		ob_start();
		$template->display('body');
		$content = ob_get_clean();

		$urlin = array(
			"/\.\/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)(.*?)\"/i",
		);
		$urlout = array(
			'./viewtopic.php?t=\\2\\3"/i',
		);

		echo preg_replace($urlin, $urlout, $content);
Думаю, что то же самое можно сделать и в виде расширения. Но у меня такой задачи не стояло.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Xisp
Сообщения: 196
Зарегистрирован: 05.04.14 18:00
Благодарил (а): 15 раз
Поблагодарили: 30 раз

SEO-оптимизация для ссылок на темы форума

Сообщение Xisp »

Регуляркой? По всему контенту страницы? При каждой выдаче? Прощай процессорное время.
Shredder
Администратор
Сообщения: 1067
Зарегистрирован: 22.08.13 09:05
Благодарил (а): 132 раза
Поблагодарили: 264 раза
Контактная информация:

SEO-оптимизация для ссылок на темы форума

Сообщение Shredder »

Есть другие варианты кроме перекапывания всего форума (не факт, что в наличии будут нужные события) или замены через регулярное выражение? Движок 3.1 всё равно не сильно оптимизирован под "слабые хостинги", так что процессорным временем меньше, процессорным временем больше...

У данного способа есть и ещё одно большое преимущество - он заменяет именно ВСЕ ссылки на страницах, включая ссылки, создаваемые расширениями (кроме тех, что добавляются при помощи js типа writeln - с такими, как выяснилось, работать не будет). Иначе придётся ковырять не только движок, но и все расширения, которые будут устанавливаться на форум. Прощай модульность, лёгкое обновление и универсальность.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Аватара пользователя
c61
Разработчик модов
Сообщения: 249
Зарегистрирован: 24.08.13 16:46
Благодарил (а): 20 раз
Поблагодарили: 62 раза

SEO-оптимизация для ссылок на темы форума

Сообщение c61 »

Shredder писал(а):Есть другие варианты...?
Вряд ли можно найти что-то получше... Однако, из-за тормозов на регулярках при похожих заменах сталкивался на 3.0.x, а 3.1 (как верно подмечено) точно не для слабых серверов. Программирование как искусство уже давно никого не интересует, копи-пасте и лепи систему из стороннего кода, оптимизация пофиг - теперь так модно жить )
Shredder
Администратор
Сообщения: 1067
Зарегистрирован: 22.08.13 09:05
Благодарил (а): 132 раза
Поблагодарили: 264 раза
Контактная информация:

SEO-оптимизация для ссылок на темы форума

Сообщение Shredder »

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