Comment configurer une URL/URI pour
http(s)://(www).example.(com/net/org)/somepath
pour finir au correspondant:
https://example.com/somepath
J'imagine que la solution (s'il en existe une) impliquera les paramètres DNS et .htaccess
voodoo. Mais je ne comprends pas vraiment comment ça marche (en particulier .htaccess
). Donc, quelques suggestions spécifiques sur ce qu'il faut lire seraient également appréciées. (Oui, je peux google, mais cela semble être une question assez spécifique et/ou ésotérique, et je n'ai pas réussi à trouver de solution. Ou je pourrais être stupide ...)
J'ai des domaines example.net
/.org
/.com
tous enregistrés auprès du même registraire. Par l'intermédiaire des paramètres de domaine du registraire, j'ai example.net
et .org
configuré pour rediriger (301) vers example.com
. J'ai example.com
hébergé dans une société d'hébergement partagée séparée qui utilise Apache & cPanel.
Actuellement, certaines redirections fonctionnent: http://(with or without www).example.(net/org)
=> http://example.com
.
Cependant, http://www.example.com
ne redirige pas uniquement vers http://example.com
.
Maintenant pour la partie la plus délicate. L'hébergeur a également "SSL basé sur SNI". Ainsi, https://exmple.com
et https://www.example.com
fonctionnent tous les deux, mais avec https, l'URL www ne redirige pas vers le domaine de base (https://example.com
).
De plus, https://example.net
ne fonctionne pas non plus, avec ou sans le www (pas de connexion/expiration).
Donc, en bref (trop tard ??), si possible, comment configurer toutes les permutations de ce qui précède pour aboutir au résultat correspondant:
https://example.com/somepath
Ou, si la réponse nécessitait la réalisation d'une thèse de doctorat à mettre en œuvre, quelle est la configuration commune/raisonnable?
De plus,
https://example.net
ne fonctionne pas non plus, avec ou sans le www (pas de connexion/expiration).
Pour que .net
et .org
fonctionnent sur HTTPS, vous devez disposer de certificats SSL couvrant ces domaines (comme vous le faites déjà pour .com
) - "SSL basé sur SNI" convient. Cependant, pour ce faire, vous devez probablement avoir le DNS de ces domaines pointant vers le même serveur (votre compte d'hébergement) et ces domaines configurés en tant que domaines "Alias" (ou "garés") dans votre compte cPanel. c'est à dire. Modifiez les noms de serveurs sur ces domaines chez votre registraire, comme vous l'avez probablement fait pour example.com
. (À moins que votre registraire de domaine ne puisse configurer SSL pour ces domaines et que vous puissiez configurer la redirection appropriée à partir de cette fin - ce dont je doute fort.)
Vous pouvez ensuite émettre ("Let's Encrypt"?) Des certificats SSL couvrant ces noms de domaine supplémentaires dans cPanel.
Actuellement, vous avez des redirections pour .net
et .org
de votre registraire, car le DNS est actuellement géré par votre registraire. Lorsque vous pointez le DNS sur votre hébergeur Web, ces redirections cesseront naturellement de fonctionner.
Et maintenant, le .htaccess
"voodoo" redirige tout vers votre hôte canonique (example.com
) et HTTPS. En réalité, ce n’est vraiment pas si mal, en ce qui concerne les redirections.
En haut du fichier .htaccess
à la racine du document, ajoutez les directives mod_rewrite suivantes:
RewriteEngine On
RewriteCond %{HTTP_Host} !^example\.com$ [OR]
RewriteCond %{HTTPS} !on
RewriteRule ^ https://example.com%{REQUEST_URI} [R=302,L]
Ce qui précède indique ... si l'hôte demandé est nonexample.com
(l'hôte canonique) ou si la demande n'est pas HTTPS (modèle souhaité), puis redirigez-vous vers https://example.com/somepath
.
Notez que ce qui précède est une redirection 302 (temporaire). Changez-le en 301 (permanent) uniquement lorsque vous avez confirmé que tout fonctionne correctement. Les 301 sont mis en cache par le navigateur (par défaut), ce qui peut rendre les tests difficiles.