Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
nginx:redirect-www [2016/01/31 12:13] – создано mirocow | nginx:redirect-www [2024/02/09 01:51] (текущий) – mirocow | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | {{tag> | ||
+ | |||
====== Создание редиректа на домен с www ====== | ====== Создание редиректа на домен с www ====== | ||
Выполняем редирект с домена без www | Выполняем редирект с домена без www | ||
- | < | + | * https:// |
+ | |||
+ | < | ||
server { | server { | ||
listen [[IP]]:80; | listen [[IP]]:80; | ||
server_name [[DOMAIN]]; | server_name [[DOMAIN]]; | ||
- | return 301 http:// | + | return 301 $scheme:// |
} | } | ||
</ | </ | ||
Строка 13: | Строка 17: | ||
на домен с www | на домен с www | ||
- | < | + | < |
server { | server { | ||
- | | + | |
- | server_name www.[[DOMAIN]]; | + | server_name www.[[DOMAIN]]; |
- | root / | + | root / |
} | } | ||
</ | </ | ||
+ | |||
+ | ===== Nginx, 301 редирект с http на https протокол ===== | ||
+ | |||
+ | Если у вас на сайте есть SSL сертификат для домена, | ||
+ | |||
+ | <code nginx> | ||
+ | #... | ||
+ | if ($scheme = http) { | ||
+ | return 301 https:// | ||
+ | } | ||
+ | }</ | ||
+ | или | ||
+ | |||
+ | <code nginx> | ||
+ | #... | ||
+ | listen | ||
+ | server_name | ||
+ | rewrite ^ https:// | ||
+ | }</ | ||
+ | |||
+ | ===== Nginx, 301 редирект с https на http протокол ===== | ||
+ | |||
+ | Обратный пример конфигурации для редиректа с http на https: | ||
+ | |||
+ | <code nginx> | ||
+ | | ||
+ | | ||
+ | | ||
+ | }</ | ||
+ | |||
+ | <code nginx> | ||
+ | listen | ||
+ | server_name www.devreadwrite.com; | ||
+ | #... | ||
+ | }</ | ||
+ | |||
+ | ===== Nginx, 301 редирект с www на без www ===== | ||
+ | |||
+ | Пример 301-го редиректа на основное зеркало без www: | ||
+ | |||
+ | <code nginx> | ||
+ | #... | ||
+ | if ($host ~* www\.(.*)) { | ||
+ | set $host_without_www $1; | ||
+ | rewrite ^(.*)$ http:// | ||
+ | } | ||
+ | }</ | ||
+ | |||
+ | или | ||
+ | |||
+ | <code nginx> | ||
+ | #... | ||
+ | server_name www.devreadwrite.com; | ||
+ | rewrite ^/(.*)$ http:// | ||
+ | }</ | ||
+ | |||
+ | ===== Nginx, 301 редирект с без www на с www ===== | ||
+ | |||
+ | Обратный пример 301-го редиректа на основное зеркало сайта с www: | ||
+ | |||
+ | <code nginx> | ||
+ | #... | ||
+ | server_name devreadwrite.com; | ||
+ | rewrite ^/(.*)$ http:// | ||
+ | }</ | ||
+ | |||
+ | <code nginx> | ||
+ | listen | ||
+ | server_name www.devreadvrite.com; | ||
+ | #... | ||
+ | }</ | ||
+ | |||
+ | ===== Nginx, 301 редирект для одной страницы ===== | ||
+ | |||
+ | Если у страницы поменялся URL, то лучше сделать 301 редирект на новый URL: | ||
+ | |||
+ | <code nginx> | ||
+ | #... | ||
+ | if ( $request_filename ~ oldpage/ ) { | ||
+ | rewrite ^ http:// | ||
+ | } | ||
+ | #... | ||
+ | }</ | ||
+ | |||
+ | ===== Nginx, 301 редирект для папки ===== | ||
+ | |||
+ | Аналогичный пример 301-го редиректа для папки: | ||
+ | |||
+ | <code nginx> | ||
+ | #... | ||
+ | if ( $request_filename ~ oldfolder/ | ||
+ | rewrite ^(.*) http:// | ||
+ | } | ||
+ | #... | ||
+ | }</ | ||
+ | |||
+ | ===== Nginx, 301 редирект с одного домена на другой ===== | ||
+ | |||
+ | Если вы сменили домен сайт и хотите перенести вес старого домена на новый, то можно сделать 301-й редирект со старого домена на новый: | ||
+ | |||
+ | <code nginx> | ||
+ | server_name domain.com www.devreadvrite.com; | ||
+ | rewrite ^ $scheme:// | ||
+ | }</ | ||
+ | |||
+ | ===== Nginx, 301 редирект с каждой страницы одного домена на такой же URL адрес другого домена ===== | ||
+ | |||
+ | Если вы планируете изменить свой домен или изменить название предприятия, | ||
+ | |||
+ | <code nginx> | ||
+ | server_name devreadvrite.com www.devreadvrite.com; | ||
+ | rewrite ^ $scheme:// | ||
+ | }</ | ||
+ | |||
+ | ===== Nginx, 301 редирект со страниц со слешем на страницы без слеша в конце URL ===== | ||
+ | |||
+ | Часто бывает так что одна и та же страница доступна по двум URL, например / | ||
+ | |||
+ | <code nginx> | ||
+ | #... | ||
+ | rewrite ^/(.*)/$ /$1 permanent; | ||
+ | #... | ||
+ | }</ | ||
+ | |||
+ | ===== Nginx, 301 редирект со страниц без слеша на страницы со слешем в конце URL ===== | ||
+ | |||
+ | Причина делать такой редирект та же, что и в ситуации описанным выше, за исключением того, что редирект необходимо делать со страницы без слеша в конце URL на страницу со слешем в конце URL: | ||
+ | |||
+ | <code nginx> | ||
+ | #... | ||
+ | rewrite ^(.*[^/])$ $1/ permanent; | ||
+ | #... | ||
+ | }</ |