Version complète: sur le forum Webmaster Hub : URL rewriting dans quel .htaccess?
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
Jan
Bonsoir,
Je mets en place l'url rewriting d'un annuaire, situé dans le répertoire /annuaire/ d'un site.

Vaut-il mieux placer les règles de réécriture pour cet annuaire dans le .htaccess situé à la racine du site, ou dans celui situé dans le répertoire /annuaire ?

Merci.
michmuch51
Salut Jan pour ma part je l'ai placé dans celui du répertoire.
Mais Dan sera peut être plus à même de te répondre...
Xavfun
Hello Jan,

Moi aussi j'ai placé dans le répertoire de l'annuaire (ou du forum) et comme tu le sais, je suis un super pro du mode Rewrite whistling.gif

mais visiblement ça marche aussi si tu le met dans la racine, mais ça augmente les risques d'erreurs puisqu'il faudra que tu ajoute /annuaire/ devant chaque expression

et selon le type d'annuaire, je peux même t'aider (si c'est le même que moi, sinon c'est mort)

J'ai bon Dan ?
Jan
Merci pour vos avis.

Xav' l'annuaire est myphpannuaire.
Xavfun
ça tombe bien c'est le seul que je connaisse biggrin.gif
Dan
CITATION(michmuch51 @ mardi 07 juin 2005, 22h41)
Salut Jan pour ma part je l'ai placé dans celui du répertoire.
Mais Dan sera peut être plus à même de te répondre...
*

laugh.gif Oui, c'est vrai qu'il faut toujours placer le .htaccess avec les règles de réécriture au niveau le plus bas.

La raison est simple: un site avec deux répertoires rep1 et rep2 dont seules les URLs de rep2 doivent être réécrites analysera toutes les URLs si le .htaccess est au niveau supérieur, donc y compris celles de rep1 qui ne doivent pas être réécrites. C'est donc une perte de ressources CPU que d'envoyer des URLs à mod_rewrite alors qu'elles n'ont pas à être réécrites.

La règle est qu'un fichier .htaccess est valable pour le répertoire dans lequel il est mis, ainsi que tous les sous-répertoires.
Si l'un de ces sous-répertoires ne doit pas être réécrit, on peut y mettre un fichier .htaccess avec la seule ligne "RewriteEngine off" histoire de gagner un peu de performances.

Si par contre il faut ajouter des règles, en plus de celles définies à l'échelon supérieur, il faut mettre "RewriteOptions inherit" pour ne pas perdre les règles définies plus haut (répertoire ou httpd.conf) wink.gif

Dan
Jan
Merci Dan.
Je me doutais bien qu'il y avait une solution privilégiée. Je me doutais aussi que tu allais nous l'expliquer wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.