Nginx перенаправляет все домены на субдомен www

У меня есть конфигурация nginx, которая работает так, как предполагалось для одного из моих доменов, но при каждом указании другого домена на свой сервер наблюдается странное поведение перенаправления.

Проблема:
] Я хочу перенаправить все запросы, сделанные на любую версию моего сайта без www.

Например:
http://example.com должен перенаправить на https: // www. example.com
http://m.example.com должен перенаправлять на https://www.example.com

Моя конфигурация работает так, как задумано для example.com, но всякий раз, когда я cname, скажите cdn.test.com на мой IP-адрес сервера с отдельным файлом конфигурации. Он перенаправляет на www.cdn.test.com

Это моя конфигурация для example.com:[12197 impression, а это конфигурация для cdn.test.com:

    server {
      listen 80;
      server_name cdn.test.com;
       root /home/.../files;
    }
2
задан 7 October 2019 в 07:08
2 ответа

В вашей конфигурации первый блок server - это default_server , который будет использоваться для всех запросов, которые не соответствуют более конкретному серверу.

Вместо верните 301 https: //www.$host$request_uri; на default_server не используйте заголовок Host из запроса в качестве параметра для генерации перенаправления, так как это может стать всем типы неправильных вещей, вместо этого используйте return 301 https: //www.example.com$request_uri; , чтобы всегда перенаправлять на www.example.com

3
ответ дан 3 December 2019 в 10:31

Можно настроить как я

 server {
#redirect all naked domains to https and www
        if ($host = aihello.com) {
            return 301 https://www.aihello.com$request_uri;
        } 
    
    
#redirect all unsecure www to secure www
        if ($host = www.aihello.com) {
            return 301 https://www.aihello.com$request_uri;
        } 
    
    
    server_name aihello.com www.aihello.com default_server;
    
    
        listen [::]:80 ipv6only=on;
        listen 80 ;
        return 404; 
    
    
    
    
    }
0
ответ дан 17 October 2020 в 01:44

Теги

Похожие вопросы