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

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

Любые дополнения, требующие модификации исходного кода.
Закрыто
Shredder
Администратор
Сообщения: 1064
Зарегистрирован: 22.08.13 09:05

Shredder » 04.01.15 18:56

В 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

Xisp » 05.01.15 08:29

Регуляркой? По всему контенту страницы? При каждой выдаче? Прощай процессорное время.

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

Shredder » 05.01.15 12:47

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

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

Аватара пользователя
c61
Разработчик модов
Сообщения: 249
Зарегистрирован: 24.08.13 16:46

c61 » 05.01.15 13:12

Shredder писал(а):Есть другие варианты...?
Вряд ли можно найти что-то получше... Однако, из-за тормозов на регулярках при похожих заменах сталкивался на 3.0.x, а 3.1 (как верно подмечено) точно не для слабых серверов. Программирование как искусство уже давно никого не интересует, копи-пасте и лепи систему из стороннего кода, оптимизация пофиг - теперь так модно жить )

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

Shredder » 08.01.15 16:19

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

Закрыто