Seu 2018 agora e eu pensei em dar a este um tiro renovado, caso alguém esteja procurando por uma solução simples.
Minha opinião sobre isso, como relativamente nova, é tornar as coisas o mais simples possível. Basicamente, você deseja redirecionar o link e o link para o link : // www .example.com. E que você só consegue redirecionar o link
Esta é uma operação bastante simples, exigindo apenas dois blocos de servidores (vou demonstrar isso brevemente em um único arquivo de configuração)
# 1. Server block to redirect all non-www and/or non-https to https://www
server {
# listen to the standard http port 80
listen 80;
# Now, since you want to route https://example.com to http://www.example.com....
# you need to get this block to listen on https port 443 as well
# alternative to defining 'ssl on' is to put it with listen 443
listen 443 ssl;
# define server_name
server_name example.com *.example.com;
# DO NOT (!) forget your ssl certificate and key
ssl_certificate PATH_TO_YOUR_CRT_FILE;
ssl_certificate_key PATH_TO_YOUR_KEY_FILE;
# permanent redirect
return 301 https://www.example.com$request_uri;
# hard coded example.com for legibility
}
# end of server block 1. nearly there....
# 2. Server block for the www (primary) domain
# note that this is the block that will ultimately deliver content
server {
# define your server name
server_name www.example.com;
# this block only cares about https port 443
listen 443 ssl;
# DO NOT (!) forget your ssl certificate and key
ssl_certificate PATH_TO_YOUR_CRT_FILE;
ssl_certificate_key PATH_TO_YOUR_KEY_FILE;
# define your logging .. access , error , and the usual
# and of course define your config that actually points to your service
# i.e. location / { include proxy_params; proxy_pass PATH_TO_SOME_SOCKET; }
}
# End of block 2.
# voilà!
Agora, o link e o link devem redirecionar para link . Basicamente, essa configuração redireciona tudo o que não é www e / ou não https para o link .