Nginx и rewrite

Главные вкладки

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 25 декабря 2010 в 14:37

Друзья, подскажите, пожалуйста, как сделать корректно на nginx автоматическую переадресацию (и, соответствено, подмену адреса) всех запросов example.net/* на www.example.net/*

После того, как переехал на nginx правила из .htaccess, естественно, не работают, и у меня индексируются по два раза все страницы — и как example.net и как www.example.net, от чего бы очень хотелось избавиться. По одному из советов смотрел http://wiki.nginx.org/NginxVirtualHostExample (а именно A Default Catchall Virtual Host), но не смог разобраться сам — то ли это, что мне нужно, и, если то, как это использовать/изменить в моём случае.

Комментарии

Аватар пользователя andribas@drupal.org andribas@drupal.org 25 декабря 2010 в 15:56
        ## www. redirect
        if ($host ~* ^(example\.net)) {
          set $rawdomain $1;
          rewrite ^/(.*)$  http://www.$rawdomain/$1 permanent;
        }

попробуйте как-то так

Аватар пользователя bodro bodro 25 декабря 2010 в 17:39

но лучше как-то так:

    server {
       listen *;
       server_name  ~^(www\.)(.*)$;
       set $without_www $2;
       rewrite ^(.*) http://$without_www$1;
    }

нужно вставить в http, будет работать для всех доменов на сервере

Аватар пользователя Durak Durak 26 января 2011 в 19:39

<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a> wrote:
Друзья, подскажите, пожалуйста, как сделать корректно на nginx автоматическую переадресацию (и, соответствено, подмену адреса) всех запросов example.net/* на www.example.net/*

После того, как переехал на nginx правила из .htaccess, естественно, не работают, и у меня индексируются по два раза все страницы — и как example.net и как www.example.net, от чего бы очень хотелось избавиться. По одному из советов смотрел http://wiki.nginx.org/NginxVirtualHostExample (а именно A Default Catchall Virtual Host), но не смог разобраться сам — то ли это, что мне нужно, и, если то, как это использовать/изменить в моём случае.

Не nginx единым.
Можно еще в robot.txt прописать какой сайт главный, а какой - зеркало.

Аватар пользователя seodon seodon 23 февраля 2011 в 8:58

Durak wrote:

Не nginx единым.
Можно еще в robot.txt прописать какой сайт главный, а какой - зеркало.

Если реврайт с редиректом на выбранный вариант не сделать, то со временем может появиться куча естественных ссылок, как с www, так и без. И в таких ситуациях поисковики не всегда, как положено склеивают.