Редиректы в Blogspot с помощью JS

среда, 18 марта 2015 г.

История довольно простая – blogspot делает редиректы на страницы на основании местонахождения пользователя. То есть пользователи из России увидят мой блог в домене .ru, Канады – в домене .ca. Получается куча сложностей с дублями страниц и прочее.

А еще тот же Яндекс может проиндексировать страницы блога с www в адресе, что тоже некрасиво. А в robots.txt прописать директиву Host нельзя, blogspot ругается и не разрешает вписывать это в файл. Да, можно переехать на отдельный домен и все это упрощается, но я принципиально не хочу переезжать пока что на отдельный домен. Проблемы надо решать, а из ресурсов у нас только javascript.

Я не стал писать какой-то хитрый и универсальный код, я сделал небольшой кусочек, который прекрасно работает на данном домене и вот он:


<script type='text/javascript'>
var blog = document.location.hostname;
var slug = document.location.pathname;
var ctld = blog.substr(blog.lastIndexOf('.'));

if(blog.toLowerCase().indexOf('www.') != -1 || ctld != '.com')
{
var ncr = 'http://glebov-gin.blogspot.com/ncr' + slug;
window.location.replace(ncr);
}
</script>


Размещать в секции <head>...</head>. Код только для конкретного домен, не очень универсальный, но я такой задачи и не ставил. Надо было просто решить проблему.

По большому счету там простая проверка - есть ли в домене www или домен не в зоне .com, то мы делаем один единственный редирект, с учетом отключения автоопределения страны – за это отвечает сегмент «ncr» в адресе. Не переживайте, после редиректа ncr из адреса пропадет и пользователи всегда будут на страницах с нормальными адресами. А так как часто используется для аналитики та же Metrika, то не исключено, что со временем Яндекс будет индексировать нормальные адреса страниц.


Copyright © 2010 WEB IT blog