J'installe un serveur nginx avec un SSL.
Le domaine avec le ssl est www.mydomain.com
Je souhaite rediriger toutes les demandes de:
http://mydomain.com , http://www.mydomain.com , & https://mydomain.com à
J'ai actuellement la configuration des blocs serveur suivante:
server{
listen 443 ssl;
root /www/mydomain.com/;
ssl_certificate /ssl/domain.crt;
ssl_certificate /ssl/domain.key;
.
.
.
}
server{
listen 80;
server_name mydomain.com;
return 301 https://www.mydomain.com$request_uri;
}
server{
listen 80;
server_name www.mydomain.com;
return 301 https://www.mydomain.com$request_uri;
}
server{
listen ssl 443;
server_name mydomain.com;
return 301 https://www.mydomain.com$request_uri;
}
Cela ne fonctionne pas actuellement, mais je ne comprends pas pourquoi. Je peux obtenir une combinaison de http -> https de travail ou de no-www vers -> www de travail, mais les mélanger comme ci-dessus ne fonctionne pas.
La redirection SSL ne fonctionnera pas si votre certificat SSL ne prend pas en charge le domaine non www. La configuration est correcte mais peut être réduite à un seul serveur de redirection
N'oubliez pas non plus de recharger nginx Sudo service nginx reload
server {
listen 80;
listen 443 ssl;
server_name example.com;
# add ssl settings
return 301 https://www.example.com$request_uri;
}
Je suis en retard, mais tu peux faire comme ça
server{
listen 443 ssl;
server_name www.mydomain.com;
root /www/mydomain.com/;
ssl on;
ssl_certificate /ssl/domain.crt;
ssl_certificate /ssl/domain.key;
.
.
.
}
server{
listen 80;
server_name www.mydomain.com mydomain.com;
return 301 https://$server_name$request_uri;
}
server{
listen 443;
server_name mydomain.com;
return 301 https://www.$server_name$request_uri;
}
Ou vous pouvez remplacer return 301 https://www.$server_name$request_uri;
avec rewrite ^ http://www.$server_name$request_uri? permanent;
, les deux fonctionneront.
Vous devez également définir cela dans Google Webmaster pour un meilleur référencement.
#If you like to redirect all "http" to "https" then add the following:
server {
listen 80;
server_name yourdomain.com;
server_name www.yourdomain.com;
if ($scheme = "http")
{
rewrite ^(.*)$ https://yourdomain.com$1 permanent;
}
}