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] protéger un dossier SAUF un fichier chez 1&1


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Par défaut [Htaccess] protéger un dossier SAUF un fichier chez 1&1
    Bonjour à tous,

    J'ai cherché des sujets équivalents sur ce forum (pas en lisant chaque page, sinon j'y serais encore!), j'ai trouvé des sujets sans réponse et rien pour 1&1. Je me permet donc de créer un nouveau sujet.

    Je suis chez 1&1 (Configuration: apache 1.3.37 Unix), qui fait certains caprices comme chaque hébergeur, par exemple, pour interpreter le PHP dans les pages html, je dois mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Addtype x-mapp-php4 .html
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Addtype application/x-httpd-php4 .htm
    Bref, parenthèse fermée
    J'ai un .htaccess qui se présente sous cette forme dans le repertoire "protected" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AuthUserFile /chemin_du_htpasswd
    AuthName "Acces restreint"
    AuthType Basic
     
    require user admin
    J'aurais voulu rendre le fichier abc.php situé dans ce repertoire "protected" accessible au public.

    J'ai essayé de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <FilesMatch "[^(abc.php)]">
    AuthUserFile /chemin_du_htaccess
    AuthName "Acces restreint"
    AuthType Basic
     
    require user admin
    </FilesMatch>
    Mais ma page requiert malgré tout une authentification

    Savez-vous s'il est possible de le faire d'une autre façon ou si j'ai juste mal fait mon expression régulière ?

    Si c'est possible, peut-on autoriser l'accès à des sous-dossiers de "protected" sans placer un .htaccess dans chacun d'eux ? Si l'on doit mettre un .htaccess dans chacun des sous-dossiers, que doit-on y mettre pour dire que l'authentification n'est pas nécessaire ?

    En fait, mon problème réside là, préciser que l'authentification n'est pas nécessaire pour certaines exceptions.

    Merci d'avance pour votre aide,

    mti131

  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
    Tu as regardé ce message http://www.developpez.net/forums/sho...=338904&page=2 ? Tu verrouilles tout ton répertoire (et par héritage tous les sous-répertoires) et juste pour ton fichier (<File abc.php>) tu mets un Allow From All/Satisfy Any, pour voir.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Par défaut
    Bonjour et merci pour ton aide ,

    Je n'avais pas vu ce message, ne connaissant pas le mot héritage en informatique. Je ne sais plus trop quoi mettre dans mon htaccess.

    Si je comprends bien, c'est "require user admin" qui demande l'authentification, donc si je précise également "pour abc.php: allow from all" et que je demande de satisfaire l'une des 2 commandes, ca devrait marcher.

    Comment rédiger tout cela ? J'ai mis ceci dans mon .htaccess, mais tout mon site devient alors accessible, j'ai donc l'impression que <Files> est totalement inefficace:
    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
    #Pages d'erreur
    ErrorDocument 401 /erreur.php?id=401
    ErrorDocument 403 /erreur.php?id=403
    ErrorDocument 404 /erreur.php?id=404
    ErrorDocument 500 /erreur.php?id=500
     
    #Repertoire protégé
    AuthUserFile /path
    AuthName "Acces restreint"
    AuthType Basic
     
    require valid-user
    #Fichier en accès libre
    <Files abc.php>
    Allow from all
    </Files>
     
    #Pour un repertoire, on mettrais probablement ca, mais je voudrais déjà que la protection pour le fichier soit OK
    #<Directory /path/protected/public/>
    #Allow from all
    #</Directory>
     
    #THE mot-clé
    Satisfy Any
    Il y a <File abc.php> comme tu m'as dit, <File "abc.php">, <Files abc.php>, <Files "abc.php">, et <FilesMatch "^abc.php$">.
    Alors que mettre ?
    Je redoute que 1&1 refuse par exemple <Files> et non <FilesMatch> ou des idioties du genre.

    Merci d'avance,

    mti131.

  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
    Alors, c'est <Files> et faut mettre le Satisfy Any dans <Files>. Pour info, mon .htaccess qui marche avec mon EasyPHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    AuthUserFile "C:/PROGRA~1/EASYPH~1/www/test/users"
    AuthGroupFile "C:/PROGRA~1/EASYPH~1/www/test/groups"
    AuthName "Authentification requise"
    AuthType Basic
    Require valid-user
     
    <Files "abc.php">
        Allow From All
        Satisfy Any
    </Files>
    Avec ça, j'accède à abc.php sans authentification, alors qu'il faut que je m'authentifie pour tous les autres fichiers.

    Si t'as des pbs, essaie sans mettre les ErrorDocument : on a galéré un bon moment sur un post y a 1 mois environ à cause de ça. Pour que les ErrorDocument fonctionnent correctement, les fichiers ne doivent pas être protégés en accès. J'avais trouvé un contournement en utilisant un Alias...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Par défaut
    Ca marche !
    Si je veux définir plusieurs exceptions, il faut donc remettre la balise <Files>.
    C'est ce que je vais faire pour mes pages d'erreur.

    Deuxième problème: le design. Il y a le css, le header flash et sa config dans le repertoire protégé, et les images dans le dossier images.

    J'ai repéré dans le manuel apache la balise <Directory>, j'essaye:
    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
    ErrorDocument 401 /erreur.php?id=401
    ErrorDocument 403 /erreur.php?id=403
    ErrorDocument 404 /erreur.php?id=404
    ErrorDocument 500 /erreur.php?id=500
     
    AuthUserFile /path
    AuthName "acces restreint"
    AuthType Basic
     
    require user admin
     
    <Files "abc.php">
    Allow From All
    Satisfy Any
    </Files>
     
    <Files "public.htm">
    Allow From All
    Satisfy Any
    </Files>
     
    #En s'arrêtant ici, le .htaccess fonctionne à merveille :)
     
    <Directory /images/>
    Allow From All
    Satisfy Any
    </Directory>
     
    #Mais avec ça, erreur 500. Il faut peut-être autre chose, mais quoi ? Est-ce possible ?
    Autre solution: mettre un .htaccess dans le dossier images pour autoriser l'accès. Je crois que c'est possible, mais de toute façon je préfererais regrouper toutes les directives dans le .htaccess cité précédemment.

    Merci d'avance

    mti131.

  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
    Oui, ça doit être possible en mettant un .htaccess dans ton dossier images avec juste Allow From All et Satisfy Any.

    Et sinon, pour la section <Directory>, ça ne marche pas tout simplement parce qu'on ne peut pas mettre de section <Directory> dans un .htaccess Donc finalement, t'as pas beaucoup de solutions :
    - Fichier .htaccess dans ton répertoire images
    - Utiliser un <FilesMatch> pour déprotéger tous les fichiers .gif, .jpg, etc.

Discussions similaires

  1. [WD18] FTPEnvoi : Dossier sauf certains fichiers
    Par Yekhen dans le forum WinDev
    Réponses: 2
    Dernier message: 05/02/2014, 12h15
  2. [.htaccess] Protéger des dossiers
    Par vocal94130 dans le forum Apache
    Réponses: 4
    Dernier message: 28/04/2010, 15h43
  3. Réponses: 19
    Dernier message: 04/06/2009, 17h11
  4. Réponses: 2
    Dernier message: 12/02/2008, 16h36
  5. htaccess - erreur 403 - protéger un dossier image
    Par lepierre dans le forum Apache
    Réponses: 2
    Dernier message: 30/06/2006, 13h59

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