Уважаемые пользователи!
Напоминаем, что с 7 ноября 2020 года phpBB Group прекратила выпуск обновлений для phpBB версии 3.2.
С учетом этого, рекомендуется обновить конференции до версии 3.3.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до отдельного объявления.

[3.2][3.3] Ultimate phpBB SEO Friendly URL

Поддержка расширений, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с расширениями для phpBB, кроме относящихся к форуму Для авторов.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
AlexOo
phpBB 2.0.0
Сообщения: 226
Стаж: 10 лет 6 месяцев
Благодарил (а): 59 раз
Поблагодарили: 8 раз

[3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение AlexOo »

Название расширения: Ultimate phpBB SEO Friendly URL
Автор: phpbb-seo
Описание расширения: This Extension will URL rewrite phpBB URLs in various manners, injecting, or not, forums and topic titles in their URLS, each URL being rewritten once, no matter the number of links using it on the page.
Скачать: https://github.com/phpbb-seo/usu
Язык: en

Всем привет. Словил неприятный баг авторизации, может кто сталкивался и нашел, как его пофиксить. URL rewriting type: Mixed

1. Заходим в любой форум (/forum/chapter1.html) и пробуем с него авторизироваться

Результат: "Запрошенного форума не существует."

Урл имеет следующий вид:

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

/forum/viewforum.php/chapter1.html?forum_uri=chapter1&start=&sid=d6a68facbe4c4ad3a393804c24365fee
2. Аналогичная проблема при авторизации по ссылке профиля (/forum/member2.html)

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

/forum/memberlist.php/member2.html?mode=viewprofile&u=2&sid=28b81b906014133a86c32247b774281e
и выводит ошибку
Скрытый текст
Общая ошибка
Попытка перенаправления на потенциально опасный сайт.

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/ext/phpbbseo/usu/core/traits/seo.php
LINE: 127
CALL: trigger_error()

FILE: [ROOT]/ext/phpbbseo/usu/core/core.php
LINE: 730
CALL: phpbbseo\usu\core\core->seo_redirect()

FILE: [ROOT]/ext/phpbbseo/usu/event/listener.php
LINE: 629
CALL: phpbbseo\usu\core\core->zero_dupe()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 214
CALL: phpbbseo\usu\event\listener->core_memberlist_view_profile()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 44
CALL: Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 62
CALL: Symfony\Component\EventDispatcher\EventDispatcher->dispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 46
CALL: phpbb\event\dispatcher->dispatch()

FILE: [ROOT]/memberlist.php
LINE: 757
CALL: phpbb\event\dispatcher->trigger_event()
3. При авторизации из топика - топик доступен, но не возвращает на исходный урл. В итоге адрес страницы после авторизации имеет следующий вид урла

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

/forum/viewtopic.php/topic3.html?forum_uri=&start=&t=3&sid=226aaecfcb49ea2202b6d30f9651442c
И все урлы страницы становятся без ЧПУ. После перехода куда-либо в рамках форума ЧПУ срабатывает.

Помогите пожалуйста пофиксить.

Спасибо.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3214
Стаж: 14 лет 8 месяцев
Благодарил (а): 19 раз
Поблагодарили: 506 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение Nekstati »

AlexOo, попробуйте так:

найти в файле ext\phpbbseo\usu\event\listener.php

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

	public function core_append_sid($event)
	{
добавить после

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

		if (strpos($event['url'], '/ucp.php') !== false && strpos($event['params'], 'mode=login&redirect=') !== false)
			$event['params'] = str_replace(['viewforum.php%2F', 'viewtopic.php%2F', 'memberlist.php%2F'], '', $event['params']);
		if (strpos($event['url'], 'memberlist.php/member') !== false && strpos($event['url'], 'mode=viewprofile') !== false)
			$event['url'] = str_replace('memberlist.php/', '', $event['url']);
(Это не исправление причины, а лишь обходной путь)
AlexOo
phpBB 2.0.0
Сообщения: 226
Стаж: 10 лет 6 месяцев
Благодарил (а): 59 раз
Поблагодарили: 8 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение AlexOo »

День добрый. Решил не поднимать новый топик по багам, а задать вопрос тут. Проблема в следующем, словил, что первая страница топика, если в ней до 10 постов включительно генерирует дубль, т.к. она доступна по адресам:

/forum/topic1.html
/forum/topic1-10.html

Подскажите пожалуйста, как это можно пофиксить ? Ведь /forum/topic1-10.html - это должна быть именно вторая страница топика, но никак не первая (((

Спасибо.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3214
Стаж: 14 лет 8 месяцев
Благодарил (а): 19 раз
Поблагодарили: 506 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение Nekstati »

AlexOo, эта вторая ссылка отображается в каком-то месте форума или вы её вводите руками? Если не отображается, то и проблемы нет. Так-то любая страница доступна по целому триллиону адресов:
/forum/topic1-10.html
/forum/topic1-9999999.html?beavis=butthead
/forum/viewtopic.php?t=1
/forum/viewtopic.php?t=1&start=999999999999999

Страница, на которой мы сейчас находимся, тоже:
https://www.phpbbguru.net/community/viewtopic.php?t=51395&start=9999999999&beavis=butthead
AlexOo
phpBB 2.0.0
Сообщения: 226
Стаж: 10 лет 6 месяцев
Благодарил (а): 59 раз
Поблагодарили: 8 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение AlexOo »

Nekstati, на форуме она никак не фигурирует, нашел подобное через панель Я.Вебмастера, ругается на дубли ((( Прописал редирект, а потом увидел, что это оказывается вторая страница

Все урлы с параметрами через ? у меня закрыты в роботсе. А тут даже не знаю, как поступить (((
AlexOo
phpBB 2.0.0
Сообщения: 226
Стаж: 10 лет 6 месяцев
Благодарил (а): 59 раз
Поблагодарили: 8 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение AlexOo »

Все еще актуально, решение пока не найдено

Пока придумал вот такую реализацию:
Если количество сообщений в топике меньше или равно10, то php редирект на topic<id>.html
Если больше 10, то ничего не делать

Но не знаю как это реализовать. Прошу помощи
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3214
Стаж: 14 лет 8 месяцев
Благодарил (а): 19 раз
Поблагодарили: 506 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение Nekstati »

AlexOo,
ext\phpbbseo\usu\event\listener.php

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

	public function core_viewtopic_modify_page_title($event)
	{
добавить после

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

		if ($this->request->variable('start', 0) > $event['start']) {
			send_status_line(301, 'Moved Permanently');
			redirect(append_sid("{$this->phpbb_root_path}viewtopic.php", "f={$this->forum_id}&amp;t={$this->topic_id}&amp;start={$event['start']}"));
		}
AlexOo
phpBB 2.0.0
Сообщения: 226
Стаж: 10 лет 6 месяцев
Благодарил (а): 59 раз
Поблагодарили: 8 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение AlexOo »

Nekstati, спасибо большущее, низкий поклон за твои труды

НАконец-таки дошли руки внедрить все вышеописанное. Редиректы работают как надо. А вот с ошибкой авторизации что-то не то. Не хочет работать возвращает "Запрошенного форума не существует.". Пробовал по разному добавлять, результат один. Буду очень признателен, если тыкнешь носом, где я накосячил. Я еще тот рукопоп :oops:

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

	public function core_viewtopic_modify_page_title($event)
	{
		
    		if ($this->request->variable('start', 0) > $event['start']) {
    			send_status_line(301, 'Moved Permanently');
    			redirect(append_sid("{$this->phpbb_root_path}viewtopic.php", "f={$this->forum_id}&amp;t={$this->topic_id}&amp;start={$event['start']}"));
    		}

    		if (strpos($event['url'], '/ucp.php') !== false && strpos($event['params'], 'mode=login&amp;redirect=') !== false)
    			$event['params'] = str_replace(['viewforum.php%2F', 'viewtopic.php%2F', 'memberlist.php%2F'], '', $event['params']);
    		if (strpos($event['url'], 'memberlist.php/member') !== false && strpos($event['url'], 'mode=viewprofile') !== false)
    			$event['url'] = str_replace('memberlist.php/', '', $event['url']);			
		
		$this->template->assign_vars([
			'U_PRINT_TOPIC'		=> ($this->auth->acl_get('f_print', $this->forum_id)) ? append_sid("{$this->phpbb_root_path}viewtopic.{$this->php_ext}", "f={$this->forum_id}&amp;t={$this->topic_id}&amp;view=print") : '',
			'U_BOOKMARK_TOPIC'	=> ($this->user->data['is_registered'] && $this->config['allow_bookmarks']) ? append_sid("{$this->phpbb_root_path}viewtopic.{$this->php_ext}", "f={$this->forum_id}&amp;t={$this->topic_id}&amp;bookmark=1&amp;hash=" . generate_link_hash("topic_{$this->topic_id}")) : '',
			'U_VIEW_RESULTS'	=> append_sid("{$this->phpbb_root_path}viewtopic.$this->php_ext", "f=$this->forum_id&amp;t=$this->topic_id&amp;view=viewpoll"),
		]);
	}
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3214
Стаж: 14 лет 8 месяцев
Благодарил (а): 19 раз
Поблагодарили: 506 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение Nekstati »

AlexOo,
1) откатить все правки из ext\phpbbseo\usu\event\listener.php и внести только эту одну (против дублей):
Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL
2) для авторизации попробовать так:
includes\functions.php
найти

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

		$redirect = $request->variable('redirect', rawurlencode($user->page['page']));
заменить на

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

		$redirect = $request->variable('redirect', $request->server('REQUEST_URI'));
или

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

		$redirect = $request->variable('redirect', rawurlencode($request->server('REQUEST_URI')));
AlexOo
phpBB 2.0.0
Сообщения: 226
Стаж: 10 лет 6 месяцев
Благодарил (а): 59 раз
Поблагодарили: 8 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение AlexOo »

Спасибо. Вечером попробую протестировать
AlexOo
phpBB 2.0.0
Сообщения: 226
Стаж: 10 лет 6 месяцев
Благодарил (а): 59 раз
Поблагодарили: 8 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение AlexOo »

И снова здравствуйте. Продолжаю ковыряться с расширением и выявлять новые касяки.

В списках тем отображаются ссылки на последнее сообщение. При наведении вижу урл вида
/forum/post10619.html#p10619

При переходе по ссылке срабатывает редирект и ссылка приобретает вид

/forum/topic13-90.html#p10619

Отсюда вопрос, как избавиться от редиректа, чтобы в списке тем сразу отображалась корректная ссылка на пост с указанием топика?


P.S. Ошибку авторизации так и не победил. Не стал лезть в includes\functions.php, т.к. эти правки затрагивают ядро, что не есть правильно. Все еще в поисках решения.

Пока в голову пришло лишь прописать правило редиректа, чтобы при авторизации убиралось viewforum.php, viewtopic.php и memberlist.php. Но своей соображалкой пока так и не понял, как это прописать, чтобы срабатывало именно при авторизации и не сказалось на функционале форума
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3214
Стаж: 14 лет 8 месяцев
Благодарил (а): 19 раз
Поблагодарили: 506 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение Nekstati »

AlexOo писал(а): 07.10.2023 20:23 как избавиться от редиректа
Снимок экрана 2023-10-07 214031.png
Только учтите, что редиректы кэшируются в браузере.

Отправлено спустя 1 минуту 23 секунды:
AlexOo писал(а): 07.10.2023 20:23 чтобы в списке тем сразу отображалась корректная ссылка на пост с указанием топика
Смысла нет, всё равно такие "перманентные" ссылки (без номера топика) есть в каждом посте.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
AlexOo
phpBB 2.0.0
Сообщения: 226
Стаж: 10 лет 6 месяцев
Благодарил (а): 59 раз
Поблагодарили: 8 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение AlexOo »

Nekstati, перевод настройки в Off отключает редирект с post10619.html#p10619 на topic13-90.html#p10619

Моя же задача, чтобы в списке форумов/топиков изначально стояла ссылка вида topic13-90.html#p10619
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12114
Стаж: 12 лет 4 месяца
Благодарил (а): 158 раз
Поблагодарили: 2384 раза

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение Татьяна5 »

AlexOo писал(а): 07.10.2023 22:26 чтобы в списке форумов/топиков изначально стояла ссылка вида topic13-90.html#p10619
Уж чего-чего, а этого точно делать не стоит. Обращение к таблице тем с главной серьёзно увеличит нагрузку, в разы
AlexOo
phpBB 2.0.0
Сообщения: 226
Стаж: 10 лет 6 месяцев
Благодарил (а): 59 раз
Поблагодарили: 8 раз

Re: [3.2][3.3] Ultimate phpBB SEO Friendly URL

Сообщение AlexOo »

Татьяна5, можно пожалуйста поподробнее ? Не очень понимаю, что создаст доп нагрузку на базу. Если можно на примере, как это работает сейчас и как будет работать после желаемой мной доработки.

ИМХО как раз сейчас создается доп нагрузка, т.к. выводится одно, а потом дергается адрес топика для редиректа. Я же хочу это оптимизировать, выводя сразу правильный адрес перехода, там самым сократив время отображения страницы за счет отсутствия переадресации

Вернуться в «Поддержка расширений для phpBB»