В некоторых случаях установка редиректов через административную панель технически невозможна. Поэтому необходимо вносить изменения в конфиг 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