Товарищи, подскажите как настроить nginx.
Задача:
1. сделать редирект с www на без-www
Кусок кода нашел вроде (он работает на другом сервере), но на продакшене - не работает. Куда его ткнуть?
server {
server_name www.DOMAINDOMAIN.ru;
return 301
https://DOMAINDOMAIN.ru$request_uri;
}
2. Выполнить 301 редирект с
https://questplanet.ru//// на
https://questplanet.ru
То есть сделать редирект при любом количестве слешей ( многослешевостью).
3. Также стоит поправить момент со слешем он должен быть у всех внутренних страниц, а у главной его быть не должно.
Пример:
https://DOMAINDOMAIN.ru
https://www.DOMAINDOMAIN.ru/vip/
upstream app_server {
server unix:/home/deployer/projects/DOMAINDOMAIN/shared/unicorn/DOMAINDOMAIN.sock fail_timeout=0;
}
server {
root /home/deployer/projects/DOMAINDOMAIN/current/public;
#server_name 92.53.120.72;
server_name DOMAINDOMAIN.ru; # removed ww version
keepalive_timeout 5;
client_max_body_size 50m;
index index.htm index.html;
location / {
try_files $uri/index.html $uri.html $uri @app;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|mp3|flv|mpeg|avi)$ {
try_files $uri @app;
expires 1y;
log_not_found off;
}
location @app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app_server;
}
location ~* .(woff2|woff|otf|css|js)$ {
expires 30d;
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /home/deployer/projects/DOMAINDOMAIN/current/public;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/DOMAINDOMAIN.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/DOMAINDOMAIN.ru/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = www.DOMAINDOMAIN.ru) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = DOMAINDOMAIN.ru) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($request_uri ~ "^\/(.*)[^\/]$") {
return 301 $1/;
}
listen 80 default deferred;
server_name DOMAINDOMAIN.ru;# www.DOMAINDOMAIN.ru;
return 404; # managed by Certbot
}