Mutualiser le .htaccess ?

Bonjour,

Une petite question par pure curiosité : sachant qu'un fichier .htaccess est récursif (c'est-à-dire que les instructions qu'il contient s'appliquent dans le répertoire où est ce .htaccess est présent mais aussi dans tous les sous-répertoires de ce répertoire), est-il possible de n'avoir qu'un seul .htaccess à la racine de PluXml plutôt que d'en mettre qausiment partout comme actuellement ?

Ce fichier (si j'ai bien compris) empêche le listing des répertoires. Mais les nouveaux répertoires créés à l'installation n'en bénéficient pas. Par exemple, après dézippage, le dossier data comprend d'autre dossiers comme articles commentaires configuration et statiques (avec chacun un fichier .htaccess) mais après installation, le répertoire data est augmenté du dossier médias qui lui n'en a pas.

D'autre part, et après avoir mis un .htaccess (Options -Indexes) à la racine d'un site de test et supprimer tous les autres .htaccess, l'activation de la réécriture après installation ne détruit pas le fichier .htaccess d'origine (comme le laisse penser le message d'alerte) mais écrit dans le fichier déjà présent, à la suite des instructions présentes.

Beaucoup de bruit pour rien, sans doute, mais certains serveurs Apache ne sont pas forcément configurés pour prendre en compte par défaut les fichiers .htaccess. Du coup, soit il faut tous les supprimer (si on ne veut pas - ou ne peut pas - toucher à la configuration du serveur) et ce serait donc plus pratique n'avoir à supprimer que celui présent à la racine, soit reconfigurer le serveur et là s'apercevoir (d'où ce post) qu'un seul fichier à la racine fonctionne parfaitement.

(pour info : serveur apache2 sur openSUSE)


à plus,

Gzyg

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour

    Tous les fichiers .htaccess ne contiennent pas tous les memes directives.
    Pour certains dossiers (ex: data/configuration) c'est un "deny all" pour protéger et interdire l'accès au contenu du dossier.
    options -indexes empêche juste de lister le contenu du dossier dans le navigateur si on tape son url, mais n'empêche pas d'accéder au contenu des fichiers. si on connait l'url d'un fichier de ce dossier, on peut y accéder.
    Le fichier .htaccess à la racine, contient en autre les directives de réécritures d'url
    Donc oui il y a plusieurs fichiers .htaccess, mais de façon général (meme s'il y a peut etre des doublons qu'on pourrait supprimer) ils ont une role différent et bien défini.

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • PPmarcelPPmarcel Member
    septembre 2016 modifié
    Bonsoir,

    Je me permets d'apporter quelques éléments.

    Gigz : il est tout à fait possible de rassembler tous les .htaccess du site sur la racine en utilisant la directive <Location> pour indiquer où l'on souhaite déclarer des règles.

    Cependant les .htaccess ont été conçus pour être placé dans le répertoire où les règles vont s'appliquer. Je suppose que c'est plus une question de lisibilité lorsqu'on est dans un répertoire donné.

    Concernant la lecture des .htaccess par apache :
    - soit elle est activée et du coup pas de soucis avec le modèle actuel
    - soit elle est désactivée auquel cas tu doit ré-intégrer toutes les règles dans ton virtual host. Mais n'as pas besoins de supprimer les .htaccess étant donné qu'ils sont ignorés.

    Côté hébergeurs, la plupart laissent la lecture des .htaccess. Ceux qui ne l'autorisent pas sont généralement infogéreur et tu peux alors leur transmettre les configurations à placer dans le virtual host de ton site.

    De façon générale la documentation d'apache préconise de ne pas lire les .htaccess (AllowOverride None) et d'intégrer les règles dans la configuration du site si tu as la main dessus.
Connectez-vous ou Inscrivez-vous pour répondre.