Решение yandex некорректные ссылки облака тегов

Рубрика: Хаки для DLE » Хак DLE 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8, 9.7, 9.6, 9.5, 9.4, 9.3, 9.2, 9.0
Решение yandex некорректные ссылки облака тегов

После того, как появился кириллический домен России, стали возникать проблемы с новыми правилами поисковой системы Яндекс, например на dle движке проблема с некорректным определением кодировки веб-ресурса.
В основном связана с Облаком Тегов, слова проиндексированные Яндексом неверно перекодированы, это может увидеть каждый для своего портала, если сделает запрос через поисковик или в панели Яндекса Инструменты для Веб мастера ошибки индексации.
Представьте какое количество ошибок может быть неверно выявлено русских слов в Облаке тегов вашего портала , после того как робот Яндекса пройдет по ссылке и обнаружит , что такой странице нет, думаю будет очень много с каждым месяцем.
Если на вашем веб-проекте установлена Datalife Engine версии 9.4 , то можете не беспокоится , так как в этой версии проблема была решена.

Все сообщения об ошибке с некорректным определением кодировки веб-ресурса , были проигнорированы технической поддержкой Yandex системы Тогда разработчики движка DLE решили внедрить систему автоматической конвертации кодировки. У нас на dle9.com можно скачать DLE 9.4.

Если вы по какой-то причине не можете перейти на новую версию движка то данный хак жизненно необходим для вас.

Хак Dle решение Яндекс некорректные ссылки облака тегов

Адрес из облака тегов DLE (если у вас кодировка движка windows-1251) вида:

http://vashsaite/tags/%ED%EE%E2%EE%F1%F2%E8/


в Яндексе отображаются как

http://vashsaite /tags/новости/


после клика по ним браузер переходит на

http://vashsaite /tags/%D0%BD%D0%BE%D...81%D1%82%D0%B8/


В результате движком такой адрес воспринимается как неверный и выдается ошибка о несуществующей странице.
Чтобы избавиться от такой ошибки я написал для своего движка версии DLE 8.5 фиксу:
Надо отредактировать в корне портала файл /engine/engine.php :

Найти в нем строчку

if (isset ( $_SESSION['dle_direction_tags'] )) $news_direction_by = $_SESSION['dle_direction_tags'];


и после нее вставить код:
$s=$tag;$s=urlencode($s); // в некоторых случаях - лишняя операция (за комментируйте)$res='0';$j=strlen($s);$s2=strtoupper($s);$s2=str_replace("%D0",'',$s2);$s2=str_replace("%D1",'',$s2);$k=strlen($s2);$m=1;if ($k>0){$m=$j/$k;if (($m>1.2)&&($m<2.2)){ $tag=iconv("UTF-8", "WINDOWS-1251", $tag); }}


В результате такой небольшой вставки все ссылки будут восприниматься вашим порталом как существующие!
Данный хак будет работать на всех версиях DLE начиная от 8.X до 9.3 включительно. Возможно будет работать и на более старых, но там я уже не проверял.К стати, этот фикс был замечен разработчиками и исправлен в 9.4, почитать можно тут (пункт 38).

Советуем скачать хак решение yandex некорректные ссылки облака тегов
  • 80
Рубрика: DLE хаки » Хак для DLE
Ранее » Хак Dle Древовидные комментарии на Nested Sets« Далее Хак дле красивый Вывод новостей в две колонки
Добавление комментарияОставить комментарий