2009-12-09 4 views
0

Dans un produit avec lequel je me bats, j'ai trouvé un fichier .htaccess à la racine de l'application, qui réécrit les requêtes vers des fichiers inexistants dans un script de traitement central. Pour des raisons de performances, je souhaite maintenant déplacer cette règle vers la configuration de mon serveur (hôte virtuel). La manière la plus simple de le faire est de copier littéralement les règles dans une section <Directory>, car elles sont interprétées comme les contextes .htaccess, n'est-ce pas? Eh bien, ça fonctionne. Est-ce que j'aurais un avantage à modifier les règles et à les déplacer vers un contexte de serveur/de niveau supérieur au lieu d'un contexte de répertoire?mod_rewrite: Préférer le contexte du serveur au contexte du répertoire?

EDIT: Je ne semble pas avoir été assez clair. Par 'contexte de répertoire', je fais PAS signifie un fichier .htaccess, mais une section <Directory> dans mon fichier de configuration du serveur.

Répondre

0

Le fichier de configuration du serveur est uniquement lu et analysé une fois lors du démarrage du serveur. Mais les fichiers .htaccess sont lus et analysés chaque fois qu'une requête est effectuée. De plus, tout fichier .htaccess descendant vers le répertoire où se trouve le fichier demandé est lu et analysé. Si vous avez une structure comme ceci:

htdocs/ 
    foo/ 
    .htaccess 
    bar/ 
     .htaccess 
     baz/ 
     .htaccess 
     somefile.html 

Et vous demander /foo/bar/baz/somefile.html, tous les fichiers .htaccess la hiérarchie des fichiers vers le bas pour somefile.html sont analysées et analysées. Maintenant, vous pouvez imaginer vous-même si c'est un surcoût ou non.

0

Voici un blog intéressant à ce sujet:

http://www.fubra.com/blog/2008/01/htaccess-vs-httpdconf/

On dirait qu'ils ont conclu qu'il est seulement environ 6,6% plus rapide que les règles en httpd.conf

Alors vous obtenez un peu gain de performance, mais vous perdez aussi une certaine flexibilité pour changer les règles par répertoire ou sans redémarrer le serveur.

Questions connexes