web-dev-qa-db-fra.com

rediriger divers domaines http vers certains domaines https via htaccess

J'ai un tas de noms de domaine avec différents TLD. Ce que je veux, c’est pointer plusieurs domaines vers le domaine "principal" qui dispose d’un certificat SSL (domaine unique).

Comme ça:

https://maindomain.com (main domain with SSL cert)
http://additionaldomain1.net (should redirect to https://maincomain.com and rewrite the URLs)
http://additionaldomain2.org (should redirect to https://maincomain.com and rewrite the URLs)

Le domaine https pointe vers le répertoire qui contient les données du site Web. J'ai créé un sous-dossier dans ce répertoire dans lequel j'ai pointé les domaines supplémentaires, car je pensais pouvoir y placer un fichier htaccess pour gérer la redirection et la réécriture. Est-ce que ça va jusqu'à présent?

Je ne parviens pas à trouver les règles htaccess correctes qui redirigent en permanence le domaine demandé (soit additionaldomain1.net ou additionaldomain2.org) vers https://maindomain.com et qui réécrit correctement les URL.

J'ai essayé la chose la plus simple qui me vienne à l'esprit:

Redirect permanent / https://maindomain.com/

Mais cela a eu pour résultat par exemple https://additionaldomain1.net qui, bien sûr, ne fonctionne pas.

Edit:

J'utilise WordPress et mets https://maindomain.com comme URL de blog ainsi que d'URL de site dans les paramètres et j'ai fait WordPress forcer SSL.

Puis-je avoir une aide s'il vous plait?

5
okiedokey

Avec vos domaines supplémentaires pointant vers des sous-répertoires situés à la racine du document du domaine principal, vous pouvez ajouter les éléments suivants au fichier .htaccess de ce sous-répertoire afin de les rediriger vers le domaine principal:

RewriteEngine On
RewriteRule (.*) https://maindomain.com/$1 [R=302,L]

Notez que cela utilise mod_rewrite, pas mod_alias (Redirect). En tant que tel, il remplacera les directives mod_rewrite dans le fichier .htaccess parent. Cela suppose que le fichier .htaccess parent (qui inclut les directives WordPress) n'utilise pas mod_alias. (WordPress utilise généralement uniquement mod_rewrite.)

Modifiez la redirection 302 (temporaire) en une redirection 301 (permanente) lorsque vous êtes heureux que tout fonctionne correctement.


Une alternative (comme mentionné dans les commentaires) consiste simplement à pointer ces domaines supplémentaires vers la racine de document du domaine principal, par opposition aux sous-répertoires. Ensuite, vous devrez modifier le fichier .htaccess des domaines principaux et inclure une redirection externe similaire avant les directives WordPress. Quelque chose comme:

RewriteEngine On
RewriteCond %{HTTP_Host} ^(www\.)?additionaldomain1\.net$
RewriteRule (.*) https://maindomain.com/$1 [R=302,L]

En fait, vous pouvez le faire de toute façon avec les sous-répertoires et ne pas utiliser le fichier .htaccess du sous-répertoire. Les fichiers .htaccess sont hérités par défaut.

2
MrWhite