Les deux marchent. Ce qui nuit à un site, c'est de servir le même contenu aux deux adresses, ou de rediriger par deux ou trois sauts avant d'arriver. Choisissez-en un, envoyez-y tout le reste en une seule redirection, et voilà.
Nginx
# a small server block whose only job is the redirect
server {
listen 80;
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
return 301 https://example.com$request_uri;
}
Le certificat doit couvrir LES DEUX noms, sinon la redirection depuis https://www échoue sur un avertissement avant même de rediriger. Délivrez-le pour example.com et www.example.com ensemble.
Apache et LiteSpeed
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
Un saut, pas trois
Un accident courant : http://www redirige vers https://www, puis vers https://example.com. Chaque saut est un aller-retour complet. Faites-le en un seul.
curl -sSIL https://www.example.com/page | grep -E '^HTTP|^location'
Lisez cette sortie : vous voulez exactement une 301 puis une 200. Deux 301 signifient qu'il y a une redirection à supprimer.
Puis mettez le site d'accord
- Le réglage de l'adresse du site dans votre application.
- La balise canonique sur chaque page.
- Le plan du site.
- Tout ce qui est écrit en dur dans le contenu.
Si rien ne vous fait préférer l'un ou l'autre, prenez le domaine nu : il est plus court, et c'est ce que les gens tapent. Le seul vrai argument pour www est qu'un domaine nu ne peut pas être un CNAME, ce qui compte si vous devez un jour faire pointer l'apex vers un service qui en exige un.
