Htaccess : Redirection HTTPS, www et sous-domaine

Résolu
Bonjour à tous,

J'ai mis ce code dans mon fichier htaccess afin de redirectionner toutes les requêtes vers le protocole HTTPS et avec www. Ce dernier fonctionne bien mais il redirectionne aussi les sous-domaine et j'aurais voulu qu'il ne le fasse pas. Avez-vous une idée pour faire ça ?

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^.*$ https://www.%1%{REQUEST_URI} [L,NE,R=301]


En gros je souhaiterai que :

domaine.fr transformé en www.domaine.fr avec HTTPS
sous.domaine.fr transformé en sous.domaine.fr avec HTTPS (au lieu de www.sous.domaine.fr)

Merci d'avance.

2 réponses

  1. Contributeur
    Hello,

    Essaie ceci ?

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    1. Bonjour,

      Merci pour ta réponse Kivin2003 !

      Je viens de tester, les requêtes sont bien redirigées mais en revanche il y a toujours le même soucis avec les sous domaines : https://www.sous.domaines.fr au lieu de https://sous.domaines.fr
      1. Contributeur
        Rajoute ceci sous le code pour retirer le www des sous-domaines :

        RewriteCond %{HTTP_HOST} ^www\.([^.]+\.domaine\.fr)$ [NC]
        RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]


        N'oublie pas de changer "domaine" et "fr" ^^