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

nginx redirect

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

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;
}
					

В конце не забываем перечитать файл конфигурации systemctl reload nginx или перезапустить NGINX - systemctl restart nginx.

Проверить, работает ли перенаправление можно с помощью инструмента проверки заголовков сервера.




Комментарии

Напишите в мессенджерах

Пожалуйста, прочтите перед этим FAQ