Друзья, подскажите, пожалуйста, как сделать корректно на nginx автоматическую переадресацию (и, соответствено, подмену адреса) всех запросов example.net/* на www.example.net/*
После того, как переехал на nginx правила из .htaccess, естественно, не работают, и у меня индексируются по два раза все страницы — и как example.net и как www.example.net, от чего бы очень хотелось избавиться. По одному из советов смотрел http://wiki.nginx.org/NginxVirtualHostExample (а именно A Default Catchall Virtual Host), но не смог разобраться сам — то ли это, что мне нужно, и, если то, как это использовать/изменить в моём случае.
Комментарии
if ($host ~* ^(example\.net)) {
set $rawdomain $1;
rewrite ^/(.*)$ http://www.$rawdomain/$1 permanent;
}
попробуйте как-то так
но лучше как-то так:
listen *;
server_name ~^(www\.)(.*)$;
set $without_www $2;
rewrite ^(.*) http://$without_www$1;
}
нужно вставить в http, будет работать для всех доменов на сервере
Не nginx единым.
Можно еще в robot.txt прописать какой сайт главный, а какой - зеркало.
Если реврайт с редиректом на выбранный вариант не сделать, то со временем может появиться куча естественных ссылок, как с www, так и без. И в таких ситуациях поисковики не всегда, как положено склеивают.