IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

htaccess redirection https + sous répertoire


Sujet :

Apache

  1. #1
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 16
    Points : 20
    Points
    20
    Par défaut htaccess redirection https + sous répertoire
    Bonjour,

    Je viens d'installer un certificat SSL sur un domaine qui héberge une application Symfony. Cette application n'est pas installée à la racine mais dans un répertoire /Symfony/, et comme de coutume sur les anciennes versions de ce framework, l'index.php se trouve dans un sous-répertoire /web.
    De fait, tant que j'étais encore en http, j'avais mis à la racine du domaine le htaccess suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <IfModule mod_rewrite.c>
        Options +FollowSymlinks
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^(www.)?exemple\.fr$
    	RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ /Symfony/web/$1 [QSA,L]
    </IfModule>
    Il fonctionnait parfaitement bien et surtout me masquait /Symfony/web/ dans l'url du navigateur, qui affichait donc simplement http://exemple.fr

    Je veux maintenant rajouter en plus une redirection https. J'ai donc modifié mon htaccess comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <IfModule mod_rewrite.c>
        Options +FollowSymlinks
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^(www.)?exemple\.fr$
    	RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ https://%{HTTP_HOST}/Symfony/web/$1 [QSA,L]
    </IfModule>
    La redirection https fonctionne bien, mais maintenant au lieu d'avoir https://exemple.fr dans l'URL, j'ai https://exemple.fr/Symfony/web. Ce que je veux absolument éviter bien sur.

    La solution doit probablement être triviale, mais après m'être acharné une moitié de la nuit à la chercher, je fais appel à l'expérience de la communauté.

    Merci par avance pour vos contributions !

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 233
    Points : 15 528
    Points
    15 528
    Par défaut
    quand vous précisez "https" dans "RewriteRule", cela ne fait plus de redirection interne mais ça envoie l'URL au navigateur.

    donc faites 2 règles, la 1re règle pour Symfony et la 2e règle qui redirige HTTP vers HTTPS avec cela par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

  3. #3
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 16
    Points : 20
    Points
    20
    Par défaut
    Merci pour cette proposition Mathieu.

    Du coup, en mettant ceci dans le htaccess...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <IfModule mod_rewrite.c>
        Options +FollowSymlinks
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^(www.)?exemple\.fr$
    	RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ /Symfony/web/$1 [QSA]
    	RewriteCond %{SERVER_PORT} !^443$
    	RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    </IfModule>
    ...ça provoque une boucle infinie. A première vue je ne comprends pas trop pourquoi puisque la condition sur le port 443 devrait l'empêcher, mais peut-être avez-vous une autre analyse ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 16
    Points : 20
    Points
    20
    Par défaut
    J'ai trouvé ! On n'était pas loin :

    Il faut remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteCond %{SERVER_PORT} !^443$
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteCond %{HTTP:X-Forwarded-Proto} !https

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Apache][.htaccess] Redirection de sous domaines
    Par dorian53 dans le forum Apache
    Réponses: 2
    Dernier message: 28/11/2015, 23h20
  2. Réponses: 4
    Dernier message: 26/08/2013, 14h45
  3. Réponses: 13
    Dernier message: 21/04/2010, 18h59
  4. Redirection avec htaccess dans un sous-répertoire
    Par fmerceur dans le forum Apache
    Réponses: 2
    Dernier message: 15/03/2010, 15h04
  5. [Htaccess] Redirection de "sous-domaines"
    Par kevinf dans le forum Apache
    Réponses: 3
    Dernier message: 29/09/2007, 19h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo