Denis.in.ua

Блог имени Меня

301 redirect с помощью nginx или мелкое seo

3 comments

301 redirectНикогда целенаправленно не занимался оптимизацией под поисковики, но вот недавно попался под руку один из миллиона сервисов предлагающих проанализировать сайт на предмет его дружелюбности к поисковикам. Без раздумий вбил один из своих проектов и первое что бросилось в глаза — заметка о том что сайт доступен по двум адресам: www.mysite.com и mysite.com, гугл и другие поисковики воспринимают эти адреса как два разных сайта. Казалось бы ничего страшного, но ведь при этом половинятся входящие ссылки, уникальность контента ставится под сомнение (какая уж тут уникальность, если один и тот же контент аж на двух сайтах), и есть, наверное, еще много негатива в таком вот дублировании.

Выход в данном случае достаточно простой, прописать редирект со статус-кодом 301 (permanently moved) с домена www.mydomain.com на mydomain.com.
Для Апача rewrite правило очевидно, а вот nginx, который я использую у себя на хостинге, для меня пока более загадочен. Но все же решение было найдено и для него.

В конфиге nginx это выглядит это приблизительно так:

1
2
3
4
5
6
7
8
9
10
11
server {
    #общая конфигурация для сервера
    listen mysite.com:80;
    server_name mysite.com *.mysite.com;
...
    #редиректим http://www.mydomain.nl/foo => http://mydomain.nl/foo
    if ($host ~* www\.(.*)) {
       set $host_without_www $1;
       rewrite ^(.*)$ http://$host_without_www$1 permanent;
    }
}

собственно permanent и означает 301 статус-код.

Решение найдено: здесь

Written by Денис Солошенко

Октябрь 21st, 2008 at 1:14 дп

Posted in PHP