301 редирект в NGINX

Обычно проблема 301 редиректа возникает когда у вас не обычный хостинг, а VPS. То соответственно следует залезать в конфиг ядра и прописывать соответствующие директивы ибо работать через обычный .htaccess не будут.

Редирект без-www на с-www

server {
server_name domainname.com;
rewrite ^/(.*)$ http://www.domain.com/$1 permanent;
}

Редирект с-www на без-www

server {
server_name www.domainname.com;
rewrite ^/(.*)$ http://domain.com/$1 permanent;
}

Новые и лучшие метода для nginx

Редирект без-www на с-www

server {
server_name domainname.com;
return 301 $scheme://www.domainname.com$request_uri;
}

Редирект с-www на без-www

server {
server_name www.domainname.com;
return 301 $scheme://domainname.com$request_uri;
}

Изменения в /etc/nginx/nginx.conf (вставляем внутри директивы http {})

Чтобы не прописывать для всех доменов по отдельности

server {
server_name ~^(?!www\.);
return 301 $scheme://$host$request_uri;
}

Метки записи: