Messages: 20167

Enregistré le: 16 Déc 2005

Message le Mar Juil 03, 2007 16:36

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
Haut
31 Réponses
Messages: 15815

Enregistré le: 23 Déc 2003

Message le Mar Juil 03, 2007 16:36

tu parles en centaine, milliers, plus de lignes ?
Haut
Messages: 20167

Enregistré le: 16 Déc 2005

Message le Mar Juil 03, 2007 16:37

e-kiwi a écrit:tu parles en centaine, milliers, plus de lignes ?


Non, j'en suis en dizaines...
Au pire 100 ou 200 selon ce que je vais faire.
Pas de souci donc ?
Haut
Messages: 114

Enregistré le: 6 Mai 2005

Message le Mar Juil 03, 2007 22:12

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.
Haut
Messages: 20167

Enregistré le: 16 Déc 2005

Message le Mar Juil 03, 2007 22:15

DreamJap a écrit:vérifie quand même, en mettant le htaccess dans un répertoire.


C'est à dire ?
Haut
Messages: 509

Enregistré le: 4 Jan 2007

Message le Mar Juil 03, 2007 22:20

Onthisplanet a écrit: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
Haut
Messages: 114

Enregistré le: 6 Mai 2005

Message le Mar Juil 03, 2007 22:21

Onthisplanet a écrit:
DreamJap a écrit: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.
Haut
Messages: 20167

Enregistré le: 16 Déc 2005

Message le Mar Juil 03, 2007 22:28

DreamJap a écrit: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.
Haut
Messages: 27

Enregistré le: 27 Fév 2006

Message le Ven Juil 27, 2007 17:47

Je rebondis sur ce message, comment faire si on est obligé d'avoir plusieurs milliers d'instructions à son htaccess ?

Impossible ??

8O
Haut
Messages: 211

Enregistré le: 21 Nov 2004

Message le Ven Juil 27, 2007 18:17

Tu mets tes instructions dans le fichier de configuration du serveur http (httpd.conf).
Haut
Messages: 27

Enregistré le: 27 Fév 2006

Message le Ven Juil 27, 2007 18:19

Merci de ta réponse, mais qu'est ce qui ferait que ca chargerait plus rapidement (quel différence ?) ?
Haut
Messages: 4566

Enregistré le: 16 Nov 2004

Message le Ven Juil 27, 2007 19:36

bigjet a écrit:Tu mets tes instructions dans le fichier de configuration du serveur http (httpd.conf).


tu peux rewriter des urls a partir du httpd.conf ??
Haut
Messages: 27

Enregistré le: 27 Fév 2006

Message le Ven Juil 27, 2007 20:08

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 ?
Haut
Messages: 4566

Enregistré le: 16 Nov 2004

Message le Ven Juil 27, 2007 20:24

awelty a écrit: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!
Haut
Messages: 6410

Enregistré le: 5 Juil 2004

Message le Ven Juil 27, 2007 20:32

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...
Haut
Messages: 27

Enregistré le: 27 Fév 2006

Message le Ven Juil 27, 2007 20:38

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 écrit: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: Tout sélectionner
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....
Haut
Messages: 4566

Enregistré le: 16 Nov 2004

Message le Ven Juil 27, 2007 21:15

Ohax a écrit: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.
Haut
Messages: 27

Enregistré le: 27 Fév 2006

Message le Dim Juil 29, 2007 18:53

Ptit up car j'aimerais en savoir plus là dessus :?: :lol:

awelty a écrit: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....
Haut
Messages: 84

Enregistré le: 13 Mar 2009

Message le Ven Nov 21, 2014 0:36

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.
Haut
Messages: 623

Enregistré le: 21 Juil 2014

Message le Ven Nov 21, 2014 0:41

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.
Haut
Messages: 4566

Enregistré le: 16 Nov 2004

Message le Ven Nov 21, 2014 2:24

Klm a écrit: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
Haut
Messages: 266

Enregistré le: 6 Juin 2009

Message le Mer Aoû 24, 2016 16:06

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 ?
Haut
Messages: 8496

Enregistré le: 14 Mai 2003

Message le Mer Aoû 24, 2016 16:15

- Fichier Excel 2 colonnes: old, new, export en CSV, fgetcsv
- Array PHP
- Base de données
Modifié en dernier par spout le Mer Aoû 24, 2016 16:27, modifié 1 fois.
Haut
Messages: 18372

Enregistré le: 5 Juin 2006

Message le Mer Aoû 24, 2016 16:16

Traites les en php, pas dans le htaccess
ou alors scinde les fichiers par sous répertoire
Haut
Messages: 266

Enregistré le: 6 Juin 2009

Message le Mer Aoû 24, 2016 16:50

spout a écrit:- 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 écrit: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.
Haut
Messages: 18372

Enregistré le: 5 Juin 2006

Message le Mer Aoû 24, 2016 17:00

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
Haut
Messages: 266

Enregistré le: 6 Juin 2009

Message le Mer Aoû 24, 2016 17:08

Oui, il faut etre précis. J'ai aujourd'hui 5078 pages avec des URLs de type :

Code: Tout sélectionner
domaine.com/monrepertoire/mapage.php?mavariable=mavaleur


que je veux faire pointer vers des URLs de type :

Code: Tout sélectionner
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.
Haut
Messages: 266

Enregistré le: 6 Juin 2009

Message le Jeu Aoû 25, 2016 12:07

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é.
Haut
Messages: 18372

Enregistré le: 5 Juin 2006

Message le Jeu Aoû 25, 2016 12:22

^^ 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 ... :)
Haut
Messages: 266

Enregistré le: 6 Juin 2009

Message le Jeu Aoû 25, 2016 12:56

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.
Haut