вопрос
Здравствуйте.
Обновился с версии 8.3 windows-1251 до версии 10.6 utf-8.
Возникла проблема с кодировкой URL при поиске публикаций по определенному тегу.
Например, у тега "Коломна" на 8.3 в кодировке windows-1251 был следующий URL:
site.ru/tags/%CA%EE%EB%EE%EC%ED%E0/
Теперь на 10.6 в кодировке utf-8 у этого же тега URL такой:
site.ru/tags/%D0%9A%D0%BE%D0%BB%D0%BE%D0%BC%D0%BD%D0%B0/
Соответственно это два разных URL и в разных кодировках.
В яндекс и гугл вебмастере появилось куча ошибок 404, так как в поиске были старые URL: site.ru/tags/%CA%EE%EB%EE%EC%ED%E0/ поэтому, при переходе по таким адресам, публикаций не обнаружено. Ошибок таких появилось очень много.
Как исправить ситуацию? Либо сделать 301 редирект со старых URL на новые URL, либо сделать формирование тегов как на старой версии в той же кодировке. Как это осуществить?
Заранее, благодарю.
Обновился с версии 8.3 windows-1251 до версии 10.6 utf-8.
Возникла проблема с кодировкой URL при поиске публикаций по определенному тегу.
Например, у тега "Коломна" на 8.3 в кодировке windows-1251 был следующий URL:
site.ru/tags/%CA%EE%EB%EE%EC%ED%E0/
Теперь на 10.6 в кодировке utf-8 у этого же тега URL такой:
site.ru/tags/%D0%9A%D0%BE%D0%BB%D0%BE%D0%BC%D0%BD%D0%B0/
Соответственно это два разных URL и в разных кодировках.
В яндекс и гугл вебмастере появилось куча ошибок 404, так как в поиске были старые URL: site.ru/tags/%CA%EE%EB%EE%EC%ED%E0/ поэтому, при переходе по таким адресам, публикаций не обнаружено. Ошибок таких появилось очень много.
Как исправить ситуацию? Либо сделать 301 редирект со старых URL на новые URL, либо сделать формирование тегов как на старой версии в той же кодировке. Как это осуществить?
Заранее, благодарю.
Для исправления косяка с 404 ошибкой при индексировании открываем /engine/engine.php
Ищем:
Ниже вставляем:
Ищем:
$tag = urldecode ( $_GET['tag'] );
Ниже вставляем:
/**
* Фикс облака тегов по старым ссылкам
* @author ПафНутиЙ <pafnuty10@gmail.com>
* @link http://git.io/qE7Lcw DLE-Charset-Converter
*/
if (detect_encoding($tag) == 'windows-1251') {
$tag = iconv( 'windows-1251', 'UTF-8//IGNORE', $tag );
$tag = str_replace(' ', '+', $tag);
header('HTTP/1.0 301 Moved Permanently');
header('Location: /tags/' . $tag . '/');
die('Redirect');
}