В некоторых случаях установка редиректов через административную панель технически невозможна. Поэтому необходимо вносить изменения в конфиг nginx. Подключитесь к вашему серверу по sFTP, например, с помощью WinSCP или FileZilla.
Перейдите в папку с конфигами: /etc/nginx/bx/site_avaliable.
Откройте файлы конфигурации, которые относятся к вашему домену. Если у вас только один сайт на данной виртуальной машине, то обычно конфигурационные файлы имеют название s1.conf (если сайт работает по http-протоколу) и ssl.s1.conf (если сайт работает по https-протоколу). Если сайтов на виртуальной машине несколько, то конфигурационные файлы будут иметь название вашего домена, например, bx_ext_example.com.conf или bx_ext_ssl_example.com.conf.
Нижеследующие редиректы вы можете добавить после строчки: server_name_in_redirect off;
index.php -> /
if ($request_uri ~ "^(.*)index\.(?:php|html)") {
return 301 $1;
}
Добавление / в конце
if ($request_uri !~* "/api/.*") {
rewrite ^([^.]*[^/])$ $1/ permanent;
}
Удаление двойного слеша
if ($request_uri ~ "^[^?]*?//") {
rewrite "^" $scheme://$host$uri permanent;
}
Нижеследующие редиректы необходимо добавить в начале файла
www -> non-www
Для конфига SSL (HTTPS)
server { listen 443 ssl http2;
server_name www.YOUR_DOMAIN.ru; return 301 https://YOUR_DOMAIN.ru$request_uri;
# CERTIFICATE ANSIBLE MANAGED BLOCK include bx/conf/ssl_options.conf; ssl_certificate /fullchain.pem; ssl_certificate_key /privkey.pem; ssl_trusted_certificate /chain.pem; # CERTIFICATE ANSIBLE MANAGED BLOCK }
Блок CERTIFICATE ANSIBLE MANAGED BLOCK вам необходимо скопировать из основного домена. Он будет ближе к концу файла.
Для конфига non-SSL (HTTP)
server { listen 80;
server_name www.YOUR_DOMAIN.ru; return 301 https://YOUR_DOMAIN.ru$request_uri; }
У первоначального блока конфигурации удалите из строки server_name домен с WWW, если он там присутствует.
YOUR_DOMAIN.ru - ваш домен.
non-www -> www
Порядок действия аналогичен настройки редиректа www -> non-www, только необходимо поменять домены с www и без www местами.
После изменения конфигурации nginx, его необходимо перезапустить. Для этого в консоли SSH введите команду systemctl restart nginx
|