Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2240 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Apache : propagation du .HTACCESS ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Apache : propagation du .HTACCESS ?

n°1022492
Drwily
Mad Doctor !
Posté le 17-03-2008 à 10:18:24  profilanswer
 

Bonjour,
 
J'aime Apache, fléxible, léger, très fonctionnel si ce n'est quelques points obscures qui m'échappent...
 
Dont, la gestion des fichiers .htaccess. Alors évidement, j'ai cherché sans trouver de réponses précises, je pose donc la question ici.
 
J'utilise un fichier .htaccess depuis pas mal de temps pour faire de l'url rewrite. Mais, chose très bête je me suis aperçu que je n'avais pas désactivé le directory listing. Je voudrais donc le désactivé à l'aide d'un .htaccess que je placerais à la racine de mon serveur Apache (/var/www/) et qui se propagerait à la totalité des sous répertoires.
 
Déja :
 
- est-ce possible ?
 
- ensuite (si oui) :  
 
La directive "AllowOverride All" qui permet la prise en compte du .htaccess :
 

Citation :

<Directory /var/www/*>
   AllowOverride All
</Directory>


 
je place mon .htaccess dans /var/www et je redémarre apache
 
Donc si je me promène dans "http://mon_site.com/la_ou je_ne_dois_pas_aller" je devrai avoir une erreur d'interdiction 403. Mais non, j'ai le listing directory d'apache.
 
Maintenant si j'utilise ce paramètre :
 

Citation :

<Directory /var/www/*>
   Options -Indexes FollowSymLinks MultiViews
   AllowOverride All
</Directory>


 
L'interdiction se propage bien avec ou sans .htaccess à tout les sous répertoires. Or ce que je veux, c'est utiliser uniquement le .htaccess pour cette interdiction et non la directive "Options -Indexes" qui de toute facon est placé dans le .htaccess, je placerais également les exceptions dans ce fichier ce qui sera plus simple à configurer. Pour info je vous laisse mes directives (au cas ou certaines entrainerais un conflit) :
 

Citation :

<Directory "/usr/share/apache2/icons">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
 
(...)
 
 <Directory "/usr/share/apache2/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback
    </Directory>
 
(...)
 
DocumentRoot /var/www/
AccessFileName .htaccess
 
<Directory /var/www/*>
#   Options -Indexes FollowSymLinks MultiViews
   AllowOverride All
</Directory>
 
#<Directory /var/www/dnl>
# AllowOverride All
# Options Indexes SymLinksIfOwnerMatch IncludesNoExec
#IndexOptions FancyIndexing ScanHTMLTitles IconsAreLinks FoldersFirst
#</Directory>
 
Alias /webmail "/usr/share/squirrelmail"
   <Directory "/usr/share/squirrelmail">
     Options Indexes FollowSymLinks MultiViews
       AddType application/x-httpd-php .php
         AllowOverride All
          Order allow,deny
    Allow from all
</Directory>
 
 
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>


 
 
Merci de votre aide ;)

Message cité 1 fois
Message édité par Drwily le 17-03-2008 à 11:26:01
mood
Publicité
Posté le 17-03-2008 à 10:18:24  profilanswer
 

n°1022815
Drwily
Mad Doctor !
Posté le 18-03-2008 à 08:46:34  profilanswer
 

UP ! Toujours pas trouvé de solution  :hello:

n°1022816
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 18-03-2008 à 08:49:43  profilanswer
 

http://httpd.apache.org/docs/2.0/howto/htaccess.html


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1023230
Drwily
Mad Doctor !
Posté le 19-03-2008 à 12:11:16  profilanswer
 

Merci pour ton aide, j'avais déja regardé cette documentation il y a longtemps et je n'y rien trouvé de plus que ce que j'explique dans mon premier post.
 
mise a part cette phrase : The Options directive controls which server features are available in a particular directory.
 
Mais si l'on cherche sur d'autres sites on peut y lire que le HTACCESS et certaines options peuvent se propager à tout les sous répertoires...

n°1023347
Ekuryua
Posté le 19-03-2008 à 16:26:13  profilanswer
 

Quelques trucs divers:
 

Drwily a écrit :

J'utilise un fichier .htaccess depuis pas mal de temps pour faire de l'url rewrite


 
Fais attention avec l'URL rewriting, si t'utilises des fichiers .htaccess à plusieurs endroits. Par défaut, seules les règles de réécriture du fichier .htaccess le plus proche parent du répertoire de l'adresse demandée sont prises en compte. Les règles des .htaccess des répertoires parents ne sont pas prises en compte. Genre si t'as un fichier .htaccess avec des RewriteRule dans /foo/ et /foo/bar/, et que tu demandes /foo/bar/test.html, seuls les RewriteRule de /foo/bar/.htaccess seront executées.
 
C'est des plus anti-intuitif, étant donné que les autres instructions sont héritées... et leur "RewriteOptions inherit" sert à rien, dans une bonne partie des cas, puisque ça fait qu'importer tes RewriteRule comme si elles étaient dans le fichier .htaccess actuel... donc les tests, patterns et substitutions seront généralement mauvais. C'est vraiment pas super, niveau modularisation.
 

Drwily a écrit :

je place mon .htaccess dans /var/www et je redémarre apache


 
T'as pas besoin de redémarrer Apache, quand tu changes un ".htaccess". Ils sont lus à chaque fois, si y'a une modification.
 

Drwily a écrit :

<Directory /var/www/*>


 
Pas besoin d'utiliser '*', ici. Ça risque d'ailleurs probablement de poser problème, niveau héritage. Avec ce joker, si tu modifies quelque chose dans "/var/www/foo/", je suppose que dans "/var/www/foo/bar/", ça sera la valeur qui est dans ton bloc qui match "/var/www/*", qui sera prise en compte, au lieu d'hériter de la valeur qui est dans "/var/www/foo/".
 
D'autre part, pourquoi tu veux mettre ces instructions, dans /var/www/.htaccess? Si tu contrôles tout, autant les mettre dans ton fichier de configuration d'Apache. Si c'est une machine de développement, ça changera pas grand chose, mais pour des tests de performance, et des machines de production, vaut mieux éviter au maximum les .htaccess.
 
 
Pour le reste, je comprends pas trop ce que tu veux faire, et faut que je retourne travailler ^_^; Bye.

n°1023582
Drwily
Mad Doctor !
Posté le 20-03-2008 à 08:58:31  profilanswer
 

Ekuryua --->
 
Merci, tu es pile-poil dans ce que je recherche.  :jap:  
 

Citation :

Genre si t'as un fichier .htaccess avec des RewriteRule dans /foo/ et /foo/bar/, et que tu demandes /foo/bar/test.html, seuls les RewriteRule de /foo/bar/.htaccess seront executées.


 
Si j'ai bien compris, ce sont les répertoires enfants qui priment sur les répertoires parents dans ce cas précis ? Étant donné que je n'utilise qu'un seul fichier .htaccess pour le rewrite (pour l'instant) je n'avais jamais remarqué cela. C'est bon à savoir, d'autant plus que j'aurais eu tendance à prendre ça pour un bug  :sweat:  
 

Citation :

pourquoi tu veux mettre ces instructions, dans /var/www/.htaccess?


 
Eh bien je me suis dit que c'était la solution la plus rapide et la plus flexible pour propager des directives communes à tous les répertoires (le option -indexes par exemple) et ainsi mettre des directives spécifiques dans les autres (comme le rewrite engine). Mais effectivement je ne me suis pas posé la question des perf et des problèmes d'héritages.
 

Citation :

Pour le reste, je comprends pas trop ce que tu veux faire,


 
En fait c'est un serveur qui regroupe 1 site, 1 web radio, téléchargement et webmail. J'utilise l'URL rewrite pour la WEB radio afin de masquer le port utilisé pour rendre l'URL plus lisible et plus accessible (par exemple "http://zik.com/nom_du_stream:8000" en "http://zik.com/nom_du_stream" ) et comme les flux changent souvent ça m'évite d'avoir à mettre à jour mes lien systématiquement. Bon ça, ça fonctionne.
 
En résumé ce que je cherche à obtenir
 
- Webmain : /var/www/webmail --> Options -Indexes
 
- site : /var/www/site ---> Options -Indexes
 
- radio : /var/www/radio ---> Options -Indexes + URL rewrite
 
- téléchargements spécifiques : /var/www/downl ---> Options -Indexes + URL rewrite
 
Comme le Options -Indexes est commun à tous les répertoires présents dans WWW j'ai pensé qu'un .htaccess pourrait me faire ça globalement. Mais si tu me dis qu'il est préférable pour les perf d'Apache d'inclure cette directive dans le fichier de config c'est ce que je ferais.
 

Citation :

Pas besoin d'utiliser '*', ici. Ça risque d'ailleurs probablement de poser problème, niveau héritage.


 
bas çà, c'est ce que je déclare dans httpd.conf parce que justement ça n'était pas prit en compte dans le .htaccess placé dans WWW. Comme il n'y pas d'autre directives contraire a celle ci, je ne crois pas que çà puisse posé des problèmes d'héritage.
 
En tout cas, merci de ta réponse  :hello:


Message édité par Drwily le 20-03-2008 à 08:59:10

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Apache : propagation du .HTACCESS ?

 

Sujets relatifs
Question sur Apache et multi serveurs weberreur Errcode: 24 dans mes log apache
Installation apache - erreur code 1 pour /usr/bin/dpkg[Apache] Conflit de VirtualHosts ?
apache2 et .htaccess non lu[Résolu] [Apache 2] Délai d'attente dépassé
Recompilation Apacheapache n'utilise pas le nom de domaine de postfix
[résolu] htaccess - htpasswdQuel versions de PHP, Mysql et apache sous Redhat 5?
Plus de sujets relatifs à : Apache : propagation du .HTACCESS ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR