Nginx, 301 редиректы с http на https протоколы и наоборот
Nginx, 301 редирект с http на https протокол
Если у вас на сайте есть SSL сертификат для домена, то вы можете настроить https протокол. После чего для 301-го редиректа вам необходимо добавить следующий код в файл конфигурации nginx для домена:
server { #... if ($scheme = http) { return 301 https://$server_name$request_uri; } }
или
server { #... listen server_ip:80; server_name www.site.com; rewrite ^ https://www.site.com$request_uri? permanent; }
Nginx, 301 редирект с https на http протокол
Обратный пример конфигурации для редиректа с http на https:
server { listen 443; server_name www.site.com; rewrite ^ http://www.site.com$request_uri? permanent; } server { listen 80; server_name www.site.com; #... }
Nginx, 301 редирект с www на без www
Пример 301-го редиректа на основное зеркало без www:
server { #... if ($host ~* www\.(.*)) { set $host_without_www $1; rewrite ^(.*)$ http://$host_without_www$1 permanent; } }
или
server { #... server_name www.site.com; rewrite ^/(.*)$ http://site.com/$1 permanent; }
Nginx, 301 редирект с без www на с www
Обратный пример 301-го редиректа на основное зеркало сайта с www:
server { #... server_name site.com; rewrite ^/(.*)$ http://www.site.com/$1 permanent; } server { listen 80; server_name www.site.com; #... }
Nginx, 301 редирект для одной страницы
Если у страницы поменялся URL, то лучше сделать 301 редирект на новый URL:
server { #... if ( $request_filename ~ oldpage/ ) { rewrite ^ http://www.site.com/newpage/? permanent; } #... }
Nginx, 301 редирект для папки
Аналогичный пример 301-го редиректа для папки:
server { #... if ( $request_filename ~ oldfolder/.+ ) { rewrite ^(.*) http://www.site.com/newfolder/$1 permanent; } #... }
Nginx, 301 редирект с одного домена на другой
Если вы сменили домен сайт и хотите перенести вес старого домена на новый, то можно сделать 301-й редирект со старого домена на новый:
server { server_name domain.com www.site.com; rewrite ^ $scheme://www.new-site.com; }
Nginx, 301 редирект с каждой страницы одного домена на такой же URL адрес другого домена
Если вы планируете изменить свой домен или изменить название предприятия, то пере направление домена является единственным лучшим решением для сохранения пользователей и перевода их запросов на новый домен:
server { server_name site.com www.site.com; rewrite ^ $scheme://www.new-site.com$request_uri permanent; }
Nginx, 301 редирект со страниц со слешем "/" на страницы без слеша в конце URL
Часто бывает так что одна и та же страница доступна по двум URL, например /may-best-page и /my-best-page/, если человеку понятно что это одна и та же страница, то поисковые системы понимают это как две разные страницы, соответственно разбивают вес страницы, а также показываются в аналитике (статистике) как 2 разные страницы. Для того, что бы избежать этого вы можете сделать 301 редирект со страниц со слешем в конце URL на без него:
server { #... rewrite ^/(.*)/$ /$1 permanent; #... }
Nginx, 301 редирект со страниц без слеша на страницы со слешем в конце URL
Причина делать такой редирект та же, что и в ситуации описанным выше, за исключением того, что редирект необходимо делать со страницы без слеша в конце URL на страницу со слешем в конце URL:
server { #... rewrite ^(.*[^/])$ $1/ permanent; #... }
Дополнительно
Не забудьте перед использованием примеров сменить site.com на свой домен. После внесения изменений в файл конфигурации nginx для домена необходимо перезапустить nginx:
service nginx reload
или
service nginx restart
или перезапустить с панели
Для редиректа с site.ru/brand/product на site.ru/product
при переездах и т.д. добавлять в блок server :
if (!-d $request_filename){ set $r 1; } if (!-f $request_filename){ set $r 2$r; } if ($r = 21){ rewrite ^/(.*)/(.*)$ $scheme://$host/$2 permanent; }