2016-03-31 3 views
1

У меня есть два сервер блоков в моей конфигурации Nginx:Nginx HTTPS перенаправлять добавляет WWW

server { 
    listen 80; 
    server_name domain.com; 
    return 301 https://domain.com$request_uri; 
} 

server { 
    listen 443 ssl; 
    server_name domain.com; 
    <ssl stuff> 
    <root directory> 
} 

Я в основном переадресация всех HTTP трафика HTTPS с использованием первого блока сервера. Я жестко кодирую имя домена переадресации, потому что я хочу явно избегать перенаправления на htps: //www.domain ... - я хочу https://domain ...

Когда я запрашиваю домен не-www HTTP, nginx правильно перенаправляет на не-www HTTPS домен

Однако, когда я запрашиваю домен www HTTP, nginx является не перенаправлением в домен без HTTPS. Так или иначе, он добавляет WWW к перенаправлению HTTPS, даже если я явно не указал.

ПОЧЕМУ?

+0

Justo be clear, http: // www.domain.com переходит на https: // www.domain.com? Или на http: // www.domain.com? – TinyTheBrontosaurus

+0

http: // www.domain.com переходит на https: // www.domain.com и я * не хочу этого. Я хочу, чтобы он перешел на https: // domain.com, который является жестко запрограммированным перенаправлением, но nginx не чтит это –

ответ

1

Просто глядя на это без тестирования, я бы сказал, что он не подбирает www.domain.com, потому что это не указано в конфиге. Я верю, что вам нужна отдельная спецификация для www или используйте регулярное выражение.

server { 
    listen 80; 
    server_name domain.com 
       www.domain.com; 
    return 301 https://domain.com$request_uri; 
} 
+0

Dope! Да. Благодарю. –

+0

w00t! рад помочь – TinyTheBrontosaurus

+0

Я приму ответ, как только сайт позволит мне =) По-видимому, его еще «слишком рано», –

Смежные вопросы