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 capricieux !


Sujet :

Apache

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut .htaccess capricieux !
    bonjour tout le monde,

    j'ai fait un fichier .htaccess pour restreindre l'acces a un espace de mon site.
    Sa fait 3h que j'essai de le faire marché je ne vois pas d'erreur !! mais l'authentification n'est jamais demandé !! je commence a en avoir marre vu que c'est le 30 ou 40èm fichier que je fait et refait ...

    Le voici (du moins la dernière version:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    AuthUserFile /var/www/rep/.htpasswd
    AuthGroupFile /var/www/rep/.htpasswd
    AuthName Area_51
    AuthType Basic
     
    require user toto
    avec mon .htpasswd bien placé dans le /var/www/rep/.htpasswd

    les fichiers portent biens les noms de .htaccess et .htpasswd
    mon htpasswd contient bien le couple login:mot_de_passe_en_MD5


    rien, aucun pop-up d'authentification : , je me posait des questions sur le mode de transfert des infos sur le serveur... y a t il un mode ou non, on les balances comme n'importe quelle autre fichier via fillezila ? merci

  2. #2
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Par défaut
    Salut,

    Es-tu sur d'utiliser la bonne syntaxe?
    Je me souviens que j'avais voulu mettre une authentification sur un compte free et j'avais bien galéré car en fait, il fallait utiliser une syntaxe "maison" (pas très éloignée mais tout de même...)

    Tu devrais, je pense te renseigner auprès d'un des administrateurs du serveur.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question à trouvé une solution.

    Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut
    Es-tu sur d'utiliser la bonne syntaxe?
    Oui, j'ai même a plusieurs reprise créé d'autres fichier htaccess .....avec des <limit> et autres syntaxes..

    heuu en faite c'est moi l'administrateur du serveur !!

    C'est mon serveur...

    Et même en local sa pose problème pourtant j'ai déjà heberger des sites avec .htaccess sur d'autres serveurs ...

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Si la fenêtre n'apparaît même pas, je pencherais plutôt sur le fait que le serveur n'est pas configuré pour prendre en compte le fichier .htaccess (au moins à ce niveau). Ça se joue au niveau de la directive AllowOverride, à chercher dans le fichier de configuration d'Apache pour le Directory correspondant à votre racine web (voir plus bas s'il faut spécialiser).

    (et votre fichier /var/www/rep/.htpasswd ne peut être à la fois AuthUserFile et AuthGroupFile )

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut
    Bonjour et Merci
    Si la fenêtre n'apparaît même pas, je pencherais plutôt sur le fait que le serveur n'est pas configuré
    Mais sous easyphp aussi mes .htaccess ne marchent pas !!

    pour prendre en compte le fichier .htaccess (au moins à ce niveau). Ça se joue au niveau de la directive AllowOverride, à chercher dans le fichier de configuration d'Apache

    j'ai l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    The server encountered an internal error or misconfiguration and was unable to complete your request.
     
    Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
     
    More information about this error may be available in the server error log
    après avoir modifier mon
    httpd.conf -->

    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    # Options FileInfo AuthConfig Limit
    #
    AllowOverride All

    une fois en All une autre fois en AuthConfig ...

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Erreur 500 : le réflexe c'est d'aller lire le journal d'erreur

    Par contre, vous nous parlez d'easyphp mais ce sont des chemins type Unix que l'on peut lire : il ne faudrait pas tout mélanger et garder les éventuels différents cas bien distincts (local / distant - d'autant plus, comme l'a souligné MasterOfChakhaL, concernant ces derniers il y a potentiellement des spécificités à prendre en compte).

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut
    rreur 500 : le réflexe c'est d'aller lire le journal d'erreur
    ou est le journal d'erreur
    Par contre, vous nous parlez d'easyphp mais ce sont des chemins type Unix que l'on peut lire
    je ne melange rien, j'ai un serveur en production et mon environnement de test sous windows, je distingue bien le C:\Windows\Program .... du var/www/

    concernant ces derniers il y a potentiellement des spécificités à prendre en compte
    Quelles spécificités ?

    Merci

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par new-dmx
    ou est le journal d'erreur
    Son emplacement est désigné par la directive ErrorLog.

    Citation Envoyé par new-dmx
    je ne melange rien, j'ai un serveur en production et mon environnement de test sous windows, je distingue bien le C:\Windows\Program .... du var/www/
    Si, puisque deux cas différents sont abordés : les systèmes ne sont pas les mêmes et même si l'on obtient un même résultat sur chacun d'eux, la cause n'en est pas pour autant nécessairement identique.

    L'erreur 500, par exemple, n'a jamais été mentionnée dans votre premier message.

    Citation Envoyé par new-dmx
    Quelles spécificités ?
    En premier lieu, l'algorithme de cryptage employé. Tous ne sont pas supportés, d'une plate-forme à une autre. Enfin, pour reprendre l'exemple de Free, ils ont une manière bien à eux de gérer l'authentification (la directive AuthUserFile est remplacée par une autre, le chemin de ce fichier doit être relatif à votre espace et les mots de passe doivent être en clair).

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut
    pour les specification, c'est mon serveur perso. Linux - Apache2 donc pas de souci comme free.
    Mon mot de passe est en MD5, mais je ne pense pas que sa y joue pour le moment vue que je n'ai pas de pop-up d'identification.

    Mais pour eviter toute confusion je vais rester sur easyphp sous windows en localhost.

    .. voici mon .htaccess

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    AuthUserFile C:\Program Files\EasyPHP 2.0b1\www\admin\.htpasswd
    AuthGroupFile 
    AuthName ByPassword
    AuthType Basic
    <Limit GET POST>
    require valid-user
    </Limit>
    les grandes lignes de mon httpd.conf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    .....
    DocumentRoot "C:/Program Files/EasyPHP 2.0b1/www"
    #
    # Each directory to which Apache has access can be configured with respect
    # to which services and features are allowed and/or disabled in that
    # directory (and its subdirectories). 
    #
    # First, we configure the "default" to be a very restrictive set of 
    # features.  
    #
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Satisfy all
    </Directory>
    .
    ..
    ...
     # for more information.
        #
        Options Indexes FollowSymLinks
        #
        # AllowOverride controls what directives may be placed in .htaccess files.
        # It can be "All", "None", or any combination of the keywords:
        #   Options FileInfo AuthConfig Limit
        #
        AllowOverride None
        #
        # Controls who can get stuff from this server.
        #
        Order allow,deny
        Allow from all
    </Directory>
    .
    ..
    ...
    <IfModule dir_module>
        DirectoryIndex index.html index.shtml index.wml index.pwml index.php index.php3 index.php4 index.php5
    </IfModule>
     
    #
    # The following lines prevent .htaccess and .htpasswd files from being 
    # viewed by Web clients. 
    #
    <FilesMatch "^\.ht">
        Order allow,deny
        Deny from all
    </FilesMatch>
     
    #
    .
    ..
    ...
    que j'ai remit a son état initial, pouvez vous m'aider a le configurer svp ?

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Que dit le log ? (bis)

    La directive AuthGroupFile attend un paramètre. Ça pourrait donc être l'origine de l'erreur 500. Commentez cette ligne ou supprimez-la.

    Vous nous donnez un extrait de votre fichier de configuration mais il est incomplet : on voit bien un bloc Directory (le deuxième) mais on ignore à quoi il correspond. S'il désigne votre racine [web], AllowOverride ne doit pas rester à None (au moins AuthConfig voir All), sans quoi votre fichier .htaccess ne prendra jamais le sens attendu.

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut
    avec ces modif (en gras)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     # The Options directive is both complicated and important.  Please see
        # http://httpd.apache.org/docs/2.2/mod/core.html#options
        # for more information.
        #
        Options Indexes FollowSymLinks
    
        #
        # AllowOverride controls what directives may be placed in .htaccess files.
        # It can be "All", "None", or any combination of the keywords:
        #   Options FileInfo AuthConfig Limit
        #
        AllowOverride All
    
        #
        # Controls who can get stuff from this server.
        #
        Order allow,deny
        Allow from all
    log :

    [Wed Aug 20 15:26:09 2008] [notice] Parent: Received restart signal -- Restarting the server.
    [Wed Aug 20 15:26:09 2008] [notice] Child 3772: Exit event signaled. Child process is ending.
    [Wed Aug 20 15:26:10 2008] [notice] Child 3772: Released the start mutex
    [Wed Aug 20 15:26:13 2008] [notice] Child 3772: Waiting for 250 worker threads to exit.
    [Wed Aug 20 15:26:13 2008] [notice] Child 3772: All worker threads have exited.
    [Wed Aug 20 15:26:13 2008] [notice] Child 3772: Child process is exiting
    [Wed Aug 20 15:26:15 2008] [notice] Apache/2.2.3 (Win32) PHP/5.2.0 configured -- resuming normal operations
    [Wed Aug 20 15:26:15 2008] [notice] Server built: Jul 27 2006 16:49:49
    [Wed Aug 20 15:26:15 2008] [notice] Parent: Created child process 4124
    [Wed Aug 20 15:26:17 2008] [notice] Child 4124: Child process is running
    [Wed Aug 20 15:26:17 2008] [notice] Child 4124: Acquired the start mutex.
    [Wed Aug 20 15:26:17 2008] [notice] Child 4124: Starting 250 worker threads.
    [Wed Aug 20 15:26:17 2008] [notice] Child 4124: Starting thread to listen on port 80.
    [Wed Aug 20 15:26:31 2008] [alert] [client 127.0.0.1] C:/Program Files/EasyPHP 2.0b1/www/admin/.htaccess: AuthUserFile takes 1-2 arguments, text file containing user IDs and passwords
    directive AuthGroupFile supprimé de mon .htaccess


    deuxième bloc directory :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    # This should be changed to whatever you set DocumentRoot to.
    #
    <Directory "C:/Program Files/EasyPHP 2.0b1/www">
        #
        # Possible values for the Options directive are "None", "All",
        # or any combination of:
        #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
        #
        # Note that "MultiViews" must be named *explicitly* --- "Options All"
        # doesn't give it to you.
        #
        # The Options directive is both complicated and important.  Please see
        # http://httpd.apache.org/docs/2.2/mod/core.html#options
        # for more information.
        #
        Options Indexes FollowSymLinks
     
        #
        # AllowOverride controls what directives may be placed in .htaccess files.
        # It can be "All", "None", or any combination of the keywords:
        #   Options FileInfo AuthConfig Limit
        #
        AllowOverride All
     
        #
        # Controls who can get stuff from this server.
        #
        Order allow,deny
        Allow from all
     
    </Directory>
    Merci du coups de pouce

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut
    En analysant le fichier log et après quelque recherches je suis tombé sur votre post.
    Il s'est avéré qu'il me manquait simplement des " " pour spécifier le chemin du .htpasswd ...
    J'ai une fenêtre qui me demande de m'authentifier ... (enfin) maintenant .

    - La configuration que je vien de faire précédement est elle bonne ? (AllowOverride All)

    - Pourquoi doit-je rentrer mon mot de passe en claire ? (pour m'authentifier je doit entré :" $1$V14gSfv0$jBmc$cl7Iq7$C85d0ovIo " et non "test" )

    - Sur mon serveur web linux le /etc/apache2/httpd.conf et totalement vide, j'utilise apache2.conf pour la config. Mais je ne trouve pas la directive me permettant de mettre a "All" pour les htaccess.
    Comment le faire ?
    Merci.

  13. #13
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par new-dmx
    Il s'est avéré qu'il me manquait simplement des " " pour spécifier le chemin du .htpasswd ...
    Exact (je ne l'avais pas vu, j'en étais +/- resté sur la "configuration" Linux)

    Citation Envoyé par new-dmx
    - La configuration que je viens de faire précédemment est elle bonne ? (AllowOverride All)
    Oui, c'est ce que j'ai indiqué par deux fois.

    Citation Envoyé par new-dmx
    - Pourquoi doit-je rentrer mon mot de passe en claire ? (pour m'authentifier je doit entré :" $1$V14gSfv0$jBmc$cl7Iq7$C85d0ovIo " et non "test" )
    Comment l'avez-vous chiffré votre mot de passe ? C'est l'utilitaire htpasswd qu'il faut employer pour générer ce fameux fichier.

    Citation Envoyé par new-dmx
    - Sur mon serveur web linux le /etc/apache2/httpd.conf et totalement vide, j'utilise apache2.conf pour la config.
    C'est le fichier /etc/apache2/sites-enabled/(000-)default qu'il faut éditer/modifier.

  14. #14
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut
    Bonjour Julp,
    Voila mon fichier 000-default avec en gras les ajout que j'ai fait.
    A ce jour les .htaccess lne fonctionnent toujour spas sur mon serveur linux. , j'ai bien le pop up mais les mots de passes ne sont pas reconnus.

    Je n'ai pas compris toutes les modifications que j'ai apportés mais j'ai fait en sorte de remplacer les AllowOverride none en all...

    000-default :
    NameVirtualHost *
    <VirtualHost *>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/
    <Directory />
    Options FollowSymLinks
    # AllowOverride None
    AllowOverride All
    </Directory>
    <Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    # AllowOverride None
    Allowoverride All
    Order allow,deny
    allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
    # AllowOverride None
    AllowOverride All
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    .htaccess :
    AuthUserFile /var/www/admin/.htpasswd
    AuthName "Espace Protéger"
    AuthType Basic
    <Limit GET POST>
    Require valid-user
    </Limit>
    .htpasswd :

    admin1:admin
    admin2:$1$e3u9GvoS$ue0dJRzzi9WU0H6wvDf5s1
    admin3:$1$B5BBrIg6$jO6CcgMO63io5wxvJ1Z7A0
    admin4:21232f297a57a5a743894a0e4a801fc3
    mot de passe admin2 --> "admin"
    mot de passe admin3 --> "admin"
    mot de passe admin4 --> "admin"

    Pourrais tu m'aider stp ?
    Merci

  15. #15
    Invité
    Invité(e)
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    AuthUserFile /var/www/admin/.htpasswd
    AuthName "Espace Protéger"
    AuthType Basic
    <Limit GET POST>
    Require valid-user
    </Limit>
    AuthType : L’authentification est en générale « basic ». Les mots de passe sont alors envoyés en clair sur le réseau. Pour sécuriser davantage l’accès, on peut utiliser la méthode d’authentification « digest » qui crypte les mots de passe en MD5 . Ce système n’est supporté que par certains navigateurs.
    Dernière modification par Sendusha ; 02/05/2011 à 19h30.

  16. #16
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut
    salut mygale,
    merci mais avec Digest j'ai une Internal Server Error ... je n'arrive même pas a afficher mon pop up d'authentification...

    le souci c'est que même avec le mot de passe en claire (admin:admin) , ce n'est pas reconnu et l'authentif ne se fait pas :s

  17. #17
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut
    c'est bon j'ai reussi a faire fonctionner mon htaccess.
    Il faut configurer le 000- default de cette manière :

    NameVirtualHost *
    <VirtualHost *>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>
    <Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    Allowoverride All
    Order allow,deny
    allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    et sa marche avec les mot de passe crypté avec un utilitaire htpasswd (voir login admin2 et admin3 page precedente)

    Merci a vous...
    ps comment se déconnecter maintenant ???

  18. #18
    Invité
    Invité(e)
    Par défaut
    Il n'y a pas de déconnexion avec une authentification de type http.

    Tu dois fermer ton navigateur

  19. #19
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 270
    Par défaut
    merci a toi ...

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

Discussions similaires

  1. .htaccess et servlets
    Par rohstev dans le forum Apache
    Réponses: 3
    Dernier message: 06/05/2004, 18h06
  2. [servlet] et .htaccess
    Par rohstev dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 06/05/2004, 18h05
  3. Protection d'un répertoire avec .htaccess
    Par Bweb dans le forum Apache
    Réponses: 2
    Dernier message: 04/05/2004, 18h12
  4. [Apache et RedHat] Problème avec les .htaccess
    Par Selpoivre dans le forum Apache
    Réponses: 15
    Dernier message: 01/04/2004, 14h24
  5. Login capricieux
    Par Sylvain James dans le forum XMLRAD
    Réponses: 2
    Dernier message: 30/04/2003, 01h46

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