ТОП 5 редиректов NGINX после переноса сайта

Вы настроили свой сервер и перенесли на него сайт. Пришло время склеить зеркала сайта и избавиться от дублей страниц.

  • 1. Редирект с http на https

    В секции server прописываем:

  • server {
      listen 80;
      server_name example.com *.example.com;
      return 301 https://$host$request_uri;
    }

    Использование вместо $host имени домена или $server_name в случае отсутствия поддоменов так же считаются правильными.

  • 2. Редирект с www зеркала сайта на без www

  • if ($host ~* www\.(.*)) {
      set $host_without_www $1;
      rewrite ^(.*)$ https://$host_without_www$1 permanent;
    }
  • 3. Редирект на слэш

  • rewrite ^([^.\?]*[^/])$ $1/ permanent;

    Актуально, если страницы имеют структуру без расширений, например https://example.com/page.

  • 4. Убираем дублирующиеся слэши

  • if ($request_uri ~* "\/\/") {
      rewrite ^/(.*) $scheme://$host/$1 permanent;
    }

    Пример: https://example.com/page//https://example.com/page/.

  • 5. Редирект с index.php

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

В конце не забываем выполнить service nginx reload или перезапустить nginx - service nginx restart.

Проверить, работает ли перенаправление можно инструментом «Заголовки сервера».