Forçar WWW para não-www com Https em vários sites Nginx

1

Eu tenho vários sites que gostaria de redirecionar para o não www https. Atualmente, tudo parece bem diferente do fato de que, quando você insere manualmente o link para qualquer um dos sites, ele não redireciona e você é levado para o que parece ser o primeiro site em ordem alfabética. Eu recebo vários erros diferentes ao tentar fazer isso. Minha configuração atual está incluída: Site principal

server {
    listen 80;
    listen [::]:80 ipv6only=on;
    server_name example.com www.example.com;
    rewrite ^ https://example.com$request_uri? permanent;
}
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2 default_server ipv6only=on;
}

Todos os outros sites

server {
    listen 80;
    server_name www.example.com example.com;
    rewrite ^ https://example.com$request_uri? permanent;
}
server {
    listen 443 ssl http2;
}

O que eu tentei redirecionar todos os sites para não www https

server {
  server_name example.com;
  listen 443 ssl http2;
}
server {
  listen       80;
  server_name  example.com www.example.com;
  return       301 https://example.com$request_uri;
}
server {
  listen 443 ssl http2;
  server_name www.example.com;
  return 301 https://example.com$request_uri;
}
    
por Danny Michel 04.12.2017 / 00:14

1 resposta

0

Eu corri assim:

Site principal:

server {
    listen 80;
    listen [::]:80 ipv6only=on;
    server_name example.com www.example.com;
    rewrite ^ https://example.com$request_uri? permanent;
}
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2 ipv6only=on;
    server_name www.example.com;
    rewrite ^ https://example.com$request_uri? permanent;
}
server {
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    ssl_certificate /usr/local/nginx/ssl/nginx.crt;
    ssl_certificate_key /usr/local/nginx/ssl/nginx.key;
    server_name example.com;
    root /home/example/public_html;
    index index.php;
    [... all stuff ...]
}

Todos os outros sites

server {
    server_name www.example.com example.com;
    rewrite ^ https://example.com$request_uri? permanent;
}
server {
    listen 443 ssl http2;
    ssl_certificate /usr/local/nginx/ssl/nginx.crt;
    ssl_certificate_key /usr/local/nginx/ssl/nginx.key;
    server_name example.com;
    root /home/example/public_html;
    index index.php;
    [... all stuff ...]
}
    
por 04.12.2017 / 06:01

Tags