nginx. Редирект с www на без www и наоборот
При использовании в качестве сервера Apache, как правило (при условии включенного mod_rewrite и разрешения на переопределение настроек через .htaccess), достаточно отредактировать файл .htaccess. В разрезе nginx, придется редактировать настройки сервера. Но все не так сложно. Вся перенастройка заключается в следующих изменениях:
- Добавляем новую запись
serverв настройках; - Прописываем порт в
listenпо которому мы слушаем запросы (обычно 80); - Указываем
server_nameравным домену с которого необходимо осуществить редирект; - Задаем
returnс кодом 301 и адресом на который осуществляется перенаправление; - Удаляем запись о (под)домене c которого перенаправляем из соновного блока
server; - Перезагружаем настройки
nginxс помощью/etc/init.d/nginx reload.
Приведем пример перенаправления с домена example.com на www.example.com. Таким образом файл с настройками доменов для сайта будет выглядеть примерно следующим образом:
server {
listen 80;
server_name example.com;
return 301 http://www.example.com$request_uri;
}
server {
listen 80;
server_name www.example.com;
# остальные настройки сервера
}
Аналогичным образом осуществляется редирект в www на без www:
server {
listen 80;
server_name www.example.com;
return 301 http://example.com$request_uri;
}
server {
listen 80;
server_name example.com;
# остальные настройки сервера
}
