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 :

Forcer une page ou un dossier en HTTPS


Sujet :

Apache

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut Forcer une page ou un dossier en HTTPS
    Bonjour,

    pour forcer une page en https, vaut-il mieux le faire avec un htaccess ou plutot un script php??

    Merci

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    C'est-à-dire ? "forcer une page" n'est pas très clair.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    que la page soit toujours en https:
    tu tapes http://www.site.com et tu es redirigé vers httpS://www.site.com

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Toujours pas clair : c'est une page bien précise (donc une URL bien déterminée) ou tout le site ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    hehe
    je parle d'une page specifique ou un dossier:
    www.site.com/login.php --> https://www.site.com/login.php
    ou encore tout un dossier:
    www.site.com/compte/ --> https://www.site.com/account

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Si c'est une page précise, le plus simple et de très très loin c'est de mettre tous les liens qui pointent sur cette page en HTTPS directement. Pour "quitter" le HTTPS de cette page, tout dépend de la page mais idem, le plus simple c'est que les liens ou les redirections que fait cette page soient directement en HTTP.

    Si c'est un dossier, on peut imaginer le .htaccess suivant à mettre dans ce dossier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}/$1 [R,L]
    Pour quitter le HTTPS quand tu quittes le dossier, je dirais que le plus simple c'est de faire comme le cas précédent : que tous liens et redirections soient en HTTP. On peut imaginer un .htaccess qui fait la redirection mais ce n'est pas terrible, je trouve, car ça fait un aller-retour inutile. Tu devrais pouvoir construire ce .htaccess à partir de celui que je viens de donner.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    je viens de me rendre compte que ce message a été initialement deplacé. je n'ai recu aucune notification!!

    Si c'est une page précise, le plus simple et de très très loin c'est de mettre tous les liens qui pointent sur cette page en HTTPS directement. Pour "quitter" le HTTPS de cette page, tout dépend de la page mais idem, le plus simple c'est que les liens ou les redirections que fait cette page soient directement en HTTP.
    c'est ce que je faisais avant mais ca represente quelques inconvénients dans mon cas actuel!
    j'avais pensé a mettre par defaut sur tout le site le protocol HTTP, puis inserer dans les pages concernees un script php qui force le passage au HTTPS

    est ce que depuis la racine du site et depuis un fichier htaccess, je peux preciser quel fichier et quel dossier doit etre excecuté en HTTPS?

    P.S. j'avais posé une question concernant la redirection du Error404 chez 1and1 sur mon autre post que je ne trouve plus!!

    et permettez moi de faire une petite suggestion sur le site de developpez.
    lorsqu'un message a été deplacé, il serait preferable d'avoir une notification instantanée par email si le post initial l'avait!

  8. #8
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Tu peux reprendre le .htaccess que je donne juste avant et modifier le filtre du RewriteRule pour préciser le répertoire et/ou le fichier cible. Après, il faut gérer le cas de sortie du HTTPS, et c'est plus délicat car il faut écrire la règle opposée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    # Ma page HTTPS
    RewriteCond %{HTTPS} !on
    RewriteRule (repertoire/page\.ext) https://%{HTTP_HOST}/$1 [R,L]
     
    # Sortie du HTTPS
    RewriteCond %{HTTPS} on
    RewriteCond %{REQUEST_URI} !^/repertoire/page\.ext$
    RewriteRule (.*) http://%{HTTP_HOST}/$1 [R,L]
    Citation Envoyé par redah75 Voir le message
    P.S. j'avais posé une question concernant la redirection du Error404 chez 1and1 sur mon autre post que je ne trouve plus!!
    Dans le forum hébergeur, 1&1 : http://www.developpez.net/forums/d99...sonnelles-php/

    Citation Envoyé par redah75 Voir le message
    et permettez moi de faire une petite suggestion sur le site de developpez.
    lorsqu'un message a été deplacé, il serait preferable d'avoir une notification instantanée par email si le post initial l'avait!
    On note le besoin

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    Merci beaucoup _MAC_
    je vais devoir travailler sur les SSL tres bientot et t'en dirai plus le moment venu
    Merci encore une fois pour toutes tes aides...

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    une toute petite question par curiosite
    disons que je suis sur cette page https://www.mon-site.com/compte/ajouter.php
    j'ai mis une regle dans le htaccess pour forcer le dossier 'compte' a etre toujours en https.
    dans ma page ajouter.php, j'utilise de l'ajax et fais appel a un fichier qui est en dehors du dossier 'compte'. est ce securisé??
    ou il me semble qu'il y aura une alerte qui dit qu'il y a des elements non securisés dans cette page comme pour les images...

  11. #11
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Au mieux tu auras une alerte te demandant si tu veux continuer ; au pire ça ne marche pas du tout. Je penche pour le deuxième cas : ça ne marche pas du tout. Difficile de dire comme ça car en plus ça peut dépendre des navigateurs et de leur configuration de sécurité.

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    Bonjour _Mac_

    je reviens vers toi pour une petit problème avec le script que tu m'as proposé.
    j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ## HTTPS folders and pages
    RewriteCond %{HTTPS} off
    RewriteRule (cart) https://%{HTTP_HOST}/$1 [R,L]
     
    RewriteCond %{HTTPS} on
    RewriteCond %{REQUEST_URI} !^/cart/$
    RewriteRule (.*) http://%{HTTP_HOST}/$1 [R,L]
    mais la page commence a exécuter des redirection en boucle puis le navigateur fini par m'afficher une erreur "Too many redirections"

    aurais tu une idée de ce que ça peut être?

    MErci

  13. #13
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Pas vraiment. Ca dépend de l'URL demandée : "cart" est une expression qui apparaît dans les 2 règles mais pas dans les mêmes conditions. C'est possible d'avoir une URL pour tester ? Si la publier sur le forum te gêne, tu peux l'envoyer par MP.

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    Merci _Mac_ pour ta réponse.

    je viens tout juste de trouver par hasard la solution. je devais mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule (cart/) https://%{HTTP_HOST}/$1 [R,L]
    (avec un flash) et ça marche.

    Mais aussi tôt un autre problème est né
    dans mon dossier "cart/" j'ai un sous dossier "ajax" qui contient des fichiers php utilisés lors des appels Ajax avec jquery $.ajax({ ... });
    tous mes appels ajax de ce dossier ne fonctionnent plus

    je ne sais plus quoi faire!

  15. #15
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Moi non plus Il nous faut un peu de détails : des traces d'erreur côté navigateur (console JavaScript) ou serveur (error_log et access_log), mais aussi des traces des connexions entre le navigateur et le serveur. Avec Firefox tu peux obtenir ces traces avec un plug-in comme Live HTTP Headers.

  16. #16
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Alors, a priori il y a deux problèmes : la règle de redirection n'est pas bonne (elle coupe une partie de la requête) et ton code Ajax n'accepte pas la redirection. Pour la règle, je ferais la correction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{HTTPS} off
    RewriteRule cart https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    Ce qui signifie que dès l'instant où il y a le mot "cart" dans l'URL et qu'on est en HTTP, on est rediriger vers l'équivalent mais en HTTPS.

    Pour la partie Ajax, c'est dans ton code JavaScript. Je ne sais pas comment on fait mais il me semble qu'on peut activer la redirection (le "follow redirect" en anglais, je crois).

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    j'ai fait des recherches concernant "follow redirent" et les appels ajax avec https mais j'ai rien trouvé d'intéressant!

    apres plusieurs tests, j'ai un info a te communiquer qui pourrait résoudre le problème

    au fait ce n'est pas le fait d'être en https qui bloque les appels Ajax. j'ai commenté les règles de redirections dans le htaccess, j'ai manuellement rajouté le "s" dans l'url et le tout marche bien. tu peux faire un test dans la page du panier en modifiant la quantité ou supprimer un produit du panier...

  18. #18
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Bah oui, ça fonctionne, car il n'y a plus la redirection. Le problème est double comme je disais : Apache redirige vers la mauvaise URL en https et Ajax ne suit pas cette redirection.

    Donc, dans un premier temps, peux-tu réactiver et corriger la réécriture vers HTTPS ? Ensuite on verra cette histoire d'Ajax.

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    je viens de remettre la reecriture vers le HTTPS. mais il y a toujours certains éléments qui ne s'affichent pas sur la page https://www.moroccan-arts.com/cart/. quand je regarde les erreurs, il me dit qu'il y a beaucoup de redirections...

    qu'est ce que je mets dans la règle de sortie (RewriteCond %{HTTPS} on)?
    j'ai gardé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{REQUEST_URI} !^/cart/$
    RewriteRule (.*) http://%{HTTP_HOST}/$1 [R,L]
    est ce bon?

    MErci infiniment

  20. #20
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Ben le problème est celui que je décrivais plus tôt :
    Citation Envoyé par _Mac_ Voir le message
    Alors, a priori il y a deux problèmes : la règle de redirection n'est pas bonne (elle coupe une partie de la requête) et ton code Ajax n'accepte pas la redirection. Pour la règle, je ferais la correction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{HTTPS} off
    RewriteRule cart https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    Ce qui signifie que dès l'instant où il y a le mot "cart" dans l'URL et qu'on est en HTTP, on est rediriger vers l'équivalent mais en HTTPS.
    Le filtre de la RewriteRule est trop large car le mot "cart" apparaît dans plusieurs URL qui ne doivent pas être redirigées en HTTPS. Il faut donc repréciser ce filtre pour le faire correspondre à celui de la redirection vers HTTP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^cart/$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    De cette manière, seule l'URL /cart/ et uniquement celle-ci, même pas des sous-URL /cart/abc.js par exemple, sera redirigée en HTTPS.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Forcer une page de l'historique de navigation a se recharger
    Par Okidor dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 16/02/2011, 12h59
  2. Recupérer une page web sur un serveur HTTPS
    Par guis14 dans le forum Général Java
    Réponses: 6
    Dernier message: 23/05/2008, 12h29
  3. htaccess spécifique à une page d'un dossier
    Par yule dans le forum Apache
    Réponses: 2
    Dernier message: 14/11/2007, 11h26
  4. Comment forcer une page web à s'afficher dans un cadre?
    Par lazario dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 25/10/2007, 13h39
  5. Forcer une page à s'ouvrir avec Internet Explorer
    Par alexbubs dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 31/10/2005, 10h32

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