.htaccess et conf d'apache

Bonjour à tous,

Je suis en panik. Je veux sécuriser une page.
J'ai bien placé les 2 fichiers .htaccess et .htpasswd dans le répertoire de la page. J'ai bien rempli les deux fichiers (je crois....j'ai fait gaffe aux path, au cryptage atc)...et je tombe sur une "500 Internal Server Error" quand je veux ouvir la fameuse page.

Est-ce que ce serait pas un problème de configuration Apache?
J'espère que je suis claire, parceque faut admettre que pour moi c'est le brouillard....

Merci d'avance aux gentils debuggers!!!
PS: j'utilise EASYPHP version 4.3.3 si ça a de l'importance

9 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bon, voici, après une journée de recherche sur les fameux
    .htaccess et .htpasswd... j'ai réussi sous win xp et xampp à sécuriser un répertoire en local. En effet, tout fonctionnait bien sur le serveur distant où est hébergé mon site Internet mais lorsque je travaillais en local, il m'était impossible d'afficher ma page php (authorisation denied).

    J'ai fini par trouver le moyen en consultant différentes sources sur le web.

    La première qui fut utile, m'a permit de bien configurer mon
    .htaccess... Il fallait en effet bien indiquer le chemin du répertoire
    depuis la racine mais avec le slash (/) au lieu du backslash (\)
    pour renseigner :

    AuthName "Page d'administration protégée"
    AuthType Basic
    AuthUserFile "H:/xampp/xampp/htdocs/essai_base_donnee/.htpasswd"
    Require valid-user


    Ensuite, le problème venait que mon mot de passe n'était pas accepter par la boîte de dialogue windows !! Problème de chiffrement probablement...
    J'ai trouvé la solution sur le site :

    https://www.vulgarisation-informatique.com/htpasswd.php

    qui décrit très bien la marche à suivre pour créer le .htpasswd.

    Cliquez sur démarrer, puis sur Exécuter et tapez cmd. Rendez-vous dans le répertoire où se trouve le programme (à l'aide des commandes cd repertoire) jusqu'à arriver au répertoire voulu.

    Ensuite tapez
    htpasswd -c votre_repertoire_de_destination\votre_fichier votre_login (-c vous permet de créer un nouveau fichier, si votre fichier htpasswd existe déjà inutile de mettre ce paramètre) et appuyez ensuite sur la touche entrée. Le programme vous demande votre mot de passe. Tapez-le une fois, appuyez sur entrée puis retapez-le (à des fins de confirmation). Un message Adding password for user votre_login apparaît si tout s'est bien déroulé.

    Enfin, merci à tous et toutes pour l'aide. En espérant
    que ce POST aidera encore un grand nombre d'utilisateur.
    Bonne journée ou bonne nuit selon le cas !! ;-)
    1. Si ça peut encore aider quelqu'un :

      dans htppd.conf il faut changer l'option "AllowOverride" du répertoire racine (par defait <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">) pour permettre l'usage des .htaccess

      Chez moi elle était a "None". Pour les mots de passe il faut donc la passer a "AuthConfig". Cela done :

      <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
      ...
      AllowOverride AuthConfig

      </Directory>

      En plus c'est dit dans les commentaires : << AllowOverride controls what directives may be placed in .htaccess files.>>
      1. Salut,
        En fait, il s'agit bien d'un probleme de .htaccess...
        Quand t'as une erreur 500 en general, si t'as bidouillé du .htaccess ca vient toujours de la.

        Tu pourrais copier le contenu de ton fichier .htaccess et .htpasswd, stp ?

        Kalamit,
        Parle à ma culasse, mon carter est malade. :)
        1. Enfin, pas le .htpasswd... Ca m'servira à rien.

          Kalamit,
          Parle à ma culasse, mon carter est malade. :)
          1. Voila pour mon fichier .htpasswd

            marie:K9NcFzj7.DV7.
            profs:LR9C/LeAJiAgA
            admin:WPQf8t/5XUa/I

            voila pour le .htaccess

            Authname "PROTECTED"
            AuthUserFile C:\Program Files\EasyPHP\www\PROJET2\interrogation\.htpasswd
            AuthGroupFile /dev/null
            AuthType Basic
            <limit GET POST>
            require valid-user
            </limit>

            LEs 2 fichiers sont dans le meme répertoire que la page à cacher.
            merci de ton aide
            1. OK. En fait, le \ c'est normalement /. Essaye:
              Authname "PROTECTED" 
              AuthUserFile "C:/Program Files/EasyPHP/www/PROJET2/interrogation/.htpasswd"
              AuthGroupFile /dev/null 
              AuthType Basic 
              <limit GET POST> 
              require valid-user 
              </limit> 

              Et ca devrait etre bon...

              Kalamit,
              Parle à ma culasse, mon carter est malade. :)
              1. ça marche tjrs pô....
                faut vraiment rien toucher dans la httpd.conf ???

                quoiqu'il en soit merci beaucoup de m'avoir aidé
              2. Non non, y'a rien à modifier dans le httpd.conf...

                Met ton .htpasswd à la racine de C:. Ensuite modifie le .htaccess comme suit:
                AuthUserFile C:/.htpasswd
                Authname "PROTECTED"
                AuthType Basic
                
                <Limit GET POST>
                Require valid-user
                </Limit>

                Kalamit,
                Parle à ma culasse, mon carter est malade. :)
              3. @kalamitMERCI KALAMIT!!!

                t'es un génie...ça marche!!!! (enfin presque....parceque maintenant j'ai des problèmes de cryptage, mais ça, ça devrait aller)....
                Si t'as le temps explique moi ce nouveau miracle de l'informatique.
                Merci encore.
                Aller je te fais la bise....
              4. @kalamitBen en fait, c'est tout con (je vais te decevoir, je ne suis pas un génie... :) ), il y avait un espace dans le path de ton .htpasswd. En le mettant à la racine de C: plus d'espace, donc plus de probleme.
                Ceci dit, tu peux le mettre dans n'importe quel repertoire pourvu que le chemin ne contienne pas d'espace. (Ou alors, utilise les noms DOS).

                Kalamit,
                Parle à ma culasse, mon carter est malade. :)
              5. @kalamitHeu moi je fais ca en local aussi, mais ca marche pas...

                .htaccess :
                AuthUserFile C:/.htpasswd
                AuthName "Protégé"
                AuthType Basic
                <Limit GET POST>
                Require valid-user
                </Limit>

                ...
                Alors ??
            2. petite astuce pour les windowsiens : apache est un programme unix et sous unix les chemins de fichier avec espace s'écrivent comme ceci :

              "/mon chemin/avec des espaces/"
              ou /mon\ chemin/avec\ des\ espaces/
              (il faut précéder l'espace d'un antislash)

              mais vu que sous le QDOS les espaces ne sont pas autorisés et les noms de fichiers ne doivent pas dépasser 7 carractères il y a des chances que ca ne résolve pas le problème.
              1. J'ai eu le même problème sous Linux, pour moi il manquait cette ligne :
                AuthName "By Invitation Only"
                C'est ce qui est affiché à l'utilisateur, on est obligé d'en mettre. Encore une fois, c'est tout bête.
                1. RIEN À FAIRE!!!!!

                  Winxp + Easyphp

                  mon HT :

                  ErrorDocument 403 https://www.google.ca/?gws_rd=ssl
                  AuthUserFile x:/web/www/hide/hide/hide/sans_espace_nulpart/.nomdefichiersimplede4lettre
                  AuthGroupFile /dev/null
                  AuthName "AUTH NEEDED"
                  AuthType Basic
                  <LIMIT GET POST>

                  Require valid-user
                  </LIMIT>

                  Mon fichier de pass:

                  dans x:/web/www/hide//hide/hide_sans_espace_nullpart/.nomdefichiersimplede4lettre

                  007:007
                  test008:test008

                  Avec des "\" ou des "/", rien à faire, ca fonctionne pas, pourtant, ça fonctionnait hier!

                  Ce qui se passe : Le prompt de login apparait mais jai beau entrer le bon username et le bon pass, ça souvre à nouveau sans arret. J'ai rebooter apache, refait le fichier .htaccess mais ça marche pas..

                  Quelqun a des idées?
                  1. pour le .htpasswd sous Windows le nommer : htpasswd.txt.
                    @+
                  2. /dev/null n'existe pas sur windows, 40 commentaires et zéro personnes qui l'on dit