Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

[Fix] Canonical страниц с кириллическими тегами

Заметил давно что ПС индексируют страницы типа:

правильная, каноническая страница:

  • /tags/forums/%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82/

дубли этой страницы:

  • /tags/forums/%25D0%25BF%25D1%2580%25D0%25B8%25D0%25B2%25D0%25B5%25D1%2582/
  • /tags/forums/%2525D0%2525BF%2525D1%252580%2525D0%2525B8%2525D0%2525B2%2525D0%2525B5%2525D1%252582/
  • /tags/forums/%252525D0%252525BF%252525D1%25252580%252525D0%252525B8%252525D0%252525B2%252525D0%252525/
  • и так далее каждый раз закодированный урл предыдущего адреса.

Сейчас, занимаясь оптимизацией одного форума, снова наткнулся в логах на подобные запросы. В исходный код этой страницы оказывается, что в canonical висит двойной urlencode тега. Боты запрашивают канонический адрес, там снова происходит кодирование адреса, и так повторяется до бесконечности. И все эти адреса залетают в индекс.

 

"Временный" фикс:

Открыть /admin/applications/core/modules_public/search/search.php

Найти

		$this->registry->output->addCanonicalTag( 'app=core&module=search&do=search&search_tags=' . IPSText::urlencode_furlSafe( $this->request['search_tags'] ) . '&search_app=' . $this->request['search_app']. $extra, $this->request['search_tags'], 'tags' );

Заменить на

		$this->registry->output->addCanonicalTag( 'app=core&module=search&do=search&search_tags=' . IPSText::urlencode_furlSafe( IPSSearchRegistry::get('in.raw_search_tags') ) . '&search_app=' . $this->request['search_app']. $extra, $this->request['search_tags'], 'tags' );

Рекомендованные сообщения

Это можно в баг трекер запостить на IPS?

Это можно в баг трекер запостить на IPS?

 

Скорее всего да чем нет).

  • Автор

Можно, и наверное даже нужно.

Попробовал запостить. Не уверен, что до конца уловил смысл.

  • Автор

Суть в том, что в индексе (там, где не запрещены теги к индексации) появляются куча пустых страниц, и берутся они с большой долей вероятности не откуда как из битого тега rel canonical.

http://www.google.ru/#newwindow=1&q=site:www.a108.net+inurl:tags

 

Для себя я еще настроил 404 код если темы не найдены, чтобы отвалились все левые адреса.

 

Открыть admin\applications\core\modules_public\search\search.php

 

Найти

	/* Output */
	$this->title   = $this->lang->words['search_results'];

Добавить выше

	if ( $count < 1 )
	{
		$this->registry->output->setHeaderCode( 404 );
	}

А у меня на форуме есть такие пустые страницы?

  • Автор

Дублирующие по крайней мере есть. Все что содержит %2525 является производным. Чпу ссылки в гугле должны выглядеть естественно.

  • 2 недели спустя...
  • Автор

@Zero108, вы можете редактировать топик на ИПС? Там нужно поменять urlencode на urlencode_furlSafe, потому что в 3.4.5 она отличается по результату с стандартной функции urlencode (вместо разделителя слов +, теперь это %2B).

У меня 3.4.6. Баг-рапорты не редактируются вообще, будучи один раз запощёнными. Что написать под баг-рапортом и что изменить в коде на моем сайте?

  • Автор

urlencode(

на IPSText::urlencode_furlSafe(

  • 1 год спустя...

Прошло столько времени, все равно появляются ошибки с тегами...

  • Автор

Исправьте баг, со временем они должны выпасть из индекса. Время обновления выдачи зависит от скорости переиндексации.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.