Перейти к публикации
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[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 год спустя...
Опубликовано:

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

Опубликовано:
  • Автор

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

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.