Nginx редиректы с примерами

Автоматизация управляющей компании
Автоматизация управляющей компании
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.devreadwrite.com;
    rewrite ^ https://www.devreadwrite.com$request_uri? permanent;
}

Nginx, 301 редирект с https на http протокол

Обратный пример конфигурации для редиректа с http на https:
server {
   listen  443;
   server_name  www.devreadwrite.com;
   rewrite ^ http://www.devreadwrite.com$request_uri? permanent;
}
server {
    listen  80;
    server_name www.devreadwrite.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.devreadwrite.com;
    rewrite ^/(.*)$ http://devreadwrite.com/$1 permanent;
}

Nginx, 301 редирект с без www на с www

Обратный пример 301-го редиректа на основное зеркало сайта с www:
server {
    #...
    server_name devreadwrite.com;
    rewrite ^/(.*)$ http://www.devreadvrite.com/$1 permanent;
}
server {
    listen  80;
    server_name www.devreadvrite.com;
    #...
}

Nginx, 301 редирект для одной страницы

Если у страницы поменялся URL, то лучше сделать 301 редирект на новый URL:
server {
    #...
    if ( $request_filename ~ oldpage/ ) {
        rewrite ^ http://www.devreadvrite.com/newpage/? permanent;
    }
    #...
}

Nginx, 301 редирект для папки

Аналогичный пример 301-го редиректа для папки:
server {
    #...
    if ( $request_filename ~ oldfolder/.+ ) {
        rewrite ^(.*) http://www.devreadvrite.com/newfolder/$1 permanent;
    }
    #...
}

Nginx, 301 редирект с одного домена на другой

Если вы сменили домен сайт и хотите перенести вес старого домена на новый, то можно сделать 301-й редирект со старого домена на новый:
server {
    server_name domain.com www.devreadvrite.com;
    rewrite ^ $scheme://www.new-devreadvrite.com;
}

Nginx, 301 редирект с каждой страницы одного домена на такой же URL адрес другого домена Если вы планируете изменить свой домен или изменить название предприятия, то перенаправление домена является единственным лучшим решением для сохранения пользователей и перевода их запросов на новый домен.

server {
    server_name devreadvrite.com www.devreadvrite.com;
    rewrite ^ $scheme://www.new-devreadvrite.com$request_uri permanent;
}

Nginx, 301 редирект со страниц со слешем на страницы без слеша в конце URL

Часто бывает так что одна и та же страница доступна по двум URL, например /may-best-page и /my-best-page/, если человеку понятно что это одна и та же страница, то поисковые системы понимают это как две разные страницы, соответственно разбивают вес страницы, а также показываются в аналитике (статистике) как 2 разные страницы. Для того, что бы избежать этого вы можете сделать 301 редирект со страниц со слешем в конце URL на без него:
server {
    #...
    rewrite ^/(.*)/$ /$1 permanent;
    #...
}

#Убрать / на конце страницы

location ~ .+/$ {
rewrite (.+)/$ $1 permanent;
}

####Редиректы со страниц с index.php

if ($request_uri ~* "^(.*/)index\.php$") {
        return 301 $1;
    }

####Редиректы со страниц //

merge_slashes off;
# replace merge_slashes' behavior with "redirect_slashes"
location ~* "//" {
	rewrite ^(.*)//(.*)$ $1/$2;
	rewrite ^ $uri permanent;
}

Рубрики

Декабрь 2024
ПнВтСрЧтПтСбВс
 1
2345678
9101112131415
16171819202122
23242526272829
3031 
Опубликовано в Nginx

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.