Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| nginx:redirect-www [2018/01/18 19:54] – mirocow | nginx:redirect-www [2024/02/09 01:51] (текущий) – mirocow | ||
|---|---|---|---|
| Строка 7: | Строка 7: | ||
| * https:// | * https:// | ||
| - | < | + | < |
| server { | server { | ||
| listen [[IP]]:80; | listen [[IP]]:80; | ||
| Строка 17: | Строка 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; | ||
| + | #... | ||
| + | }</ | ||