Longueur de .htaccess à ne pas dépasser ?

WRInaute accro
Lut'

Il y a t'il une limite sur le nombre de lignes d'un .htaccess ?
Ou plutôt des soucis à prévoir s'il s'accroit trop ?

Ca peut ralentir un mutu ? ou la navigation ?

Michaël
 
WRInaute discret
D'après des tests effectués personnellement, cela ralenti (de combien, il faut voir ^^ ). Mais sache que cela un impact car le .htaccess est lu à chaque chargement de fichier (oui même les images et consort...).

Je pense que 200 lignes, ne devrait pas poser de problème mais vérifie quand même, en mettant le htaccess dans un répertoire.
 
WRInaute occasionnel
Onthisplanet a dit:
Lut'

Il y a t'il une limite sur le nombre de lignes d'un .htaccess ?
Ou plutôt des soucis à prévoir s'il s'accroit trop ?

Ca peut ralentir un mutu ? ou la navigation ?

Michaël

Bonsoir,

Non pour répondre à ta 1ère question.

Y'a une limite sur le poids

Ca peut en effet, ralentir la vitesse de charge de ton site.

Bonne soirée

Fanny AMRI
 
WRInaute discret
Onthisplanet a dit:
DreamJap a dit:
vérifie quand même, en mettant le htaccess dans un répertoire.

C'est à dire ?

1. Crée un repertoire "test"
2. Tu y met un htaccess avec 200 lignes que tu aimerais faire marcher
3. Tu y met un fichier index.html avec des images par exemple
4. Tu envoi des requêtes et tu regardes si cela ralenti ou si c'est négligeable par rapport au site lui-même.

Je te dis ça car tu semble le faire sur un mutu, sur un dédié, tu aurais pu voir plus facilement :)

P.S. : Et aussi, on fait ça dans un repertoire comme ça le htaccess ne concerne que le repertoire (et les sous-repertoire) et pas l'ensemble du site.
 
WRInaute accro
DreamJap a dit:
1. Crée un repertoire "test"
2. Tu y met un htaccess avec 200 lignes que tu aimerais faire marcher
3. Tu y met un fichier index.html avec des images par exemple
4. Tu envoi des requêtes et tu regardes si cela ralenti ou si c'est négligeable par rapport au site lui-même.

Je te dis ça car tu semble le faire sur un mutu, sur un dédié, tu aurais pu voir plus facilement :)

P.S. : Et aussi, on fait ça dans un repertoire comme ça le htaccess ne concerne que le repertoire (et les sous-repertoire) et pas l'ensemble du site.

Ok, merci.
Avec cette dernière précision, je comprends mieux.
 
Nouveau WRInaute
Je rebondis sur ce message, comment faire si on est obligé d'avoir plusieurs milliers d'instructions à son htaccess ?

Impossible ??

8O
 
Nouveau WRInaute
Merci de ta réponse, mais qu'est ce qui ferait que ca chargerait plus rapidement (quel différence ?) ?
 
Nouveau WRInaute
Oui pourquoi pas si ca permet de ne pas saturer mon serveur

Car là, un htaccess d'environ 500 lignes ca fait ramer apache à mort.


Le fait de faire le rewrite depuis http.conf permet d'éviter cela ?

Si oui, comment ça se fait ?
 
WRInaute accro
awelty a dit:
Oui pourquoi pas si ca permet de ne pas saturer mon serveur

Car là, un htaccess d'environ 500 lignes ca fait ramer apache à mort.


Le fait de faire le rewrite depuis http.conf permet d'éviter cela ?

Si oui, comment ça se fait ?

On fait pas, le moteur rewrite c'est une chose, la config en est une autre.. Par contre en effet on doit pouvoir rentrer certaine instructions directement dans le config. J'aimerais bien en savoir +

Ca etant, je sais pas comment t'ecris tes regles, mais 500 lignes c'est enorme. Normal que ca rame, 500 instructions en cache, c'est du lourd!
 
WRInaute accro
Toutes les instructions ne consomment pas toutes autant.

Tout dépend de la puissance machine que tu as de disponible.

Pas de réelle limite donc...
 
Nouveau WRInaute
Je suis pourtant en cluster avec deux serveurs pour apache...

La grande partie de mon htaccess c'est 1 REWRITECOND suivi d'un REWRITERULE (etc.).

Il y en a 510 comme ça et une 50aine d'instructions REWRITE RULE ensuite...

KOogar a dit:
Ca etant, je sais pas comment t'ecris tes regles, mais 500 lignes c'est enorme. Normal que ca rame, 500 instructions en cache, c'est du lourd!
En fait ces 1020 instructions (510x2) sont générés via un programme php qui édite le fichier htaccess.

Voici d'ailleurs un exemple de mon ht access (qui se repete apres) au cas où, si vous détectiez un probleme... :
Code:
RewriteCond %{HTTP_HOST} domaine1.com [NC]
RewriteRule ^(.*).(png|gif|jpe?g)$  http://www.site.com/login1/$1.$2  [L]
RewriteCond %{HTTP_HOST} domaine1.com [NC]
RewriteRule   ^$   site/index.php?login=login1  [L]
RewriteCond %{HTTP_HOST} domaine1.com [NC]
RewriteRule ^(.*)$    login1/$1

RewriteCond %{HTTP_HOST} domaine2.org [NC]
RewriteRule ^(.*).(png|gif|jpe?g)$  http://www.site.com/login2/$1.$2  [L]
RewriteCond %{HTTP_HOST} domaine2.org [NC]
RewriteRule   ^$   site/index.php?login=login2  [L]
RewriteCond %{HTTP_HOST} domaine2.org [NC]
RewriteRule ^(.*)$    login2/$1

RewriteCond %{HTTP_HOST} domaine3.net [NC]
RewriteRule ^(.*).(png|gif|jpe?g)$  http://www.site.com/login3/$1.$2  [L]
RewriteCond %{HTTP_HOST} domaine3.net [NC]
RewriteRule   ^$   site/index.php?login=login3  [L]
RewriteCond %{HTTP_HOST} domaine3.net [NC]
RewriteRule ^(.*)$    login3/$1

Je reste intrigué par la réponse de bigjet de mettre les instructions dans le http.conf. Je ne m'y connais pas trop en config apache, je ne vois pas ce que ca change...

Bref si quelqu'un a une idée, il est le bienvenu car là je patauge dans la semoule....
 
WRInaute accro
Ohax a dit:
Toutes les instructions ne consomment pas toutes autant.

Tout dépend de la puissance machine que tu as de disponible.

Pas de réelle limite donc...

Sur un mutualisé a 20 euros par an, ca posera des problemes... mais tu as raison, avec de la tune on peut tout avoir... c'est clair.
 
Nouveau WRInaute
Ptit up car j'aimerais en savoir plus là dessus :?: :lol:

awelty a dit:
Je reste intrigué par la réponse de bigjet de mettre les instructions dans le http.conf. Je ne m'y connais pas trop en config apache, je ne vois pas ce que ca change...

Bref si quelqu'un a une idée, il est le bienvenu car là je patauge dans la semoule....
 
WRInaute discret
Bonsoir,

Un moment que j'étais pas venu ici mais une question revient régulièrement à ce sujet. Mon .htaccess fait 1310 lignes à l'heure actuelle pour un poids de 90.3 KO. Je ne trouve pas qu'il y ait de lenteur particulière à l'ouverture des pages sachant qu'il a autant de lignes depuis plusieurs mois ; années. Ma question est donc de savoir s'il y a un réel problème et qu'il faut que je réagisse vite (ou non). Je réécris manuellement chaque url d'où ce nombre important.

Merci par avance.
 
WRInaute impliqué
tu peux tester de supprimer temporairement l'immense majorité de ces lignes, pour voir si tu gagnes quelques millièmes sur le temps de génération des pages.
si rien ne change, alors pas de raison de s'inquiéter.
 
WRInaute accro
Klm a dit:
Bonsoir,

Un moment que j'étais pas venu ici mais une question revient régulièrement à ce sujet. Mon .htaccess fait 1310 lignes à l'heure actuelle pour un poids de 90.3 KO. Je ne trouve pas qu'il y ait de lenteur particulière à l'ouverture des pages sachant qu'il a autant de lignes depuis plusieurs mois ; années. Ma question est donc de savoir s'il y a un réel problème et qu'il faut que je réagisse vite (ou non). Je réécris manuellement chaque url d'où ce nombre important.

Merci par avance.

c'est a toi de voir, car c'est toi qui connais et maitrise ton environnement

En résumé, la vitesse d'execution dépend:
1. de la vitesse du serveur
2. du contenu du fichier .htaccess
ce sont les conditions (RewriteCond) qui sont gourmandes en ressources (loop) ainsi que des regex non précis: (.*)
si il n'y a que des redirections 301 (Redirect permanent) on parle ici de quelques microsecondes pour des milliers de requêtes
3. de l'emplacement et du nombre de fichiers .htaccess, si il y en a qu'1 a la racine, le serveur n'ira pas a chaque requête explorer les répertoires + être obligé d'accéder au disque pour lire le fichier .htaccess

pour plus de performances, il est conseillé de mettre les règles directement dans le fichier conf d'Apache (apache2.conf / httpd.conf) et de mettre AllowOverride a None, ca divise par 2 (en moyenne) le nombres de requêtes
 
WRInaute occasionnel
Je relance cette discussion, c'est mon problème du jour.

J'ai aujourd'hui un fichier .htaccess de 279 lignes qui pèse 21 ko. Je projette d'y ajouter, hmm hmm, 5078 redirections 301.
J'ai trouvé cette vidéo de Matt Cutts
https://www.youtube.com/watch?v=r1lVPrYoBkA
qui dit qu'on peut avoir des centaines de milliers de 301, et que c'est OK pour Google, mais ce qui m'ennuie est que je vais considérablement alourdir mon .htaccess

Mais y t-il une autre solution ?
 
WRInaute accro
- Fichier Excel 2 colonnes: old, new, export en CSV, fgetcsv
- Array PHP
- Base de données
 
WRInaute occasionnel
spout a dit:
- Fichier Excel 2 colonnes: old, new, export en CSV, fgetcsv
- Array PHP
- Base de données

C'est ce que j'essaie de faire, mettre mes 301 dans un fichier à part. Je cherche la syntaxe pour créer ce fichier, en CSV, cela me parait bien, et l'appeler ensuite à partir du .htaccess. Je regarde fgetcsv...

Marie-Aude a dit:
Traites les en php, pas dans le htaccess
ou alors scinde les fichiers par sous répertoire

Ils sont tous dans le même répertoire, qui contient aussi des sous-répertoires avec des fichiers appelés souvent...

Merci de ces réponses.
 
WRInaute accro
Tu veux dire que tu as actuellement 5078 urls rattachées directement à la racine de ton site ?

Je crois que tu n'as pas compris ce que je voulais dire.

Imagine que tu aies une url
example.com/categorie1/ur-detaillée où categorie1 est un répertoire virtuel. Si tu créés un répertoire physique, tu peux très bien y mettre un petit .htaccess qui ne comprendra que les redirections pour categorie1 et donc qui ne surchargera pas ton serveur.

Par contre, si effectivement tu n'as pas de répertoire virtuel, you are in the shit ^^

La solution de traiter les redirections en php à partir de la base de données est beaucoup plus simple que d'appeler un fichier à partir du htaccess . De plus, si tu es sur un mutu, tu ne peux pas utiliser, en général, les fonctionnalités apache correspondantes
 
WRInaute occasionnel
Oui, il faut etre précis. J'ai aujourd'hui 5078 pages avec des URLs de type :

Code:
domaine.com/monrepertoire/mapage.php?mavariable=mavaleur

que je veux faire pointer vers des URLs de type :

Code:
domaine.com/id-unique-titre-de-ma-page

C'est hyper facile avec des 301, il y a juste que la liste serait lourde.

Et oui, il y a d'autres pages, non dynamiques, dans /monrepertoire alors je ne peux faire n'importe quoi.
 
WRInaute occasionnel
Marie-Aude, merci beaucoup. Merci mille fois.

Tu m'as appris un truc, c'est tout bête, mais je ne connaissais qu'une seul méthode pour faire un 301 : par le .htaccess. Maintenant que je sais qu'on peut aussi les faire en PHP, mon problème est résolu. Ouais, j'avais pas compris la première fois que je t'avais lu...

Mon seul petit souci est que la redirection 301 sera sur toutes les pages, puisque si elle est d'une page dynamique à une autre page dynamique, le template est le même, mais je dois parvenir à arranger cela.

Pour revenir au .htaccess, je vais optimiser le mien, et réduire sa taille en créant par ailleurs des pages PHP avec des 301. Ayant lu beaucoup d'articles négatifs sur les gros .htaccess hier, cela devrait me permettre de gagner un poil de rapidité.
 
WRInaute accro
^^ c'est un peu complexe quand on découvre :)

Ton script php intervient tout en haut. Il regarde l'url "appelée" et va chercher dans la base ce qu'il doit faire, pour aller chercher la nouvelle url. Le template est affecté à la nouvelle url ... :)
 
WRInaute occasionnel
Sans etre particulièrement complexe, je pense que connaissant une méthode de faire des 301, je n'en avais jamais cherché une autre. Je n'avais même jamais pensé à en chercher une autre. J'imagine aussi que webrankinfo aurait pu publier un nouvel article sur les 301, mais puisque je sais les faire, je l'aurais même pas lu... Il faut parfois chercher à renouveler ses connaissances.
 
WRInaute occasionnel
spout a dit:
elji a dit:
Il faut parfois chercher à renouveler ses connaissances.
En informatique et encore plus dans le développement Web: tout le temps !

Oui, très vrai. C'est ce que je fais normalement, mais pour les 301, et sans doute d'autres petites choses que je n'ai pas à l'esprit en ce moment, je n'y avais pas pensé.

Marie-Aude m'a donné une bonne piqure de rappel.
 
Discussions similaires
Haut