RewriteRule et performances

Le
Mihamina Rakotomandimby
Bonjour,
Sur un Apache 2 j'ai un .htacces avec environ 100000 lignes comme celles-ci:

RewriteRule mecanicien-paris-momo.php php/fiches.php?id8209

Pas de redondance, les lignes sont uniques.
Pas de () non plus qui fasse usage de $1, $2,
Le CPU du serveur: Core2Duo E4400, 1Go de RAM.

On se doute bien que si il y a une URL du type php/fiches.php?id8209,
c'est qu'il y a une BDD derriere, mais cette base est sur un autre
serveur, et les requetes prennent tout au plus 10% du serveur, et se
font suffisament rapidement. Eventuellement, si quelqu'un se pose la
question, oui les INDEX sont faits.

AllowOverride est a None partout, sauf dans/pour le répertoire ou il y a
mon .htaccess, donc apache n'a pas à le chercher dans toute l'arborescence.

Maintenant, est-ce que 100000 lignes de reecritures aussi simples
peuvent mettre à genoux un tel serveur? Les faits semblent dire que oui,
parceque manifestement c'est la galère.
Si la reponse est OUI, alors est-ce qu'il y a une bonne pratique à
recommander pour un tel volume? Voire peut-etre meme une solution
alternative

--
Huile Essentielle de Camphre http://www.huile-camphre.fr
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
CrazyCat
Le #22032561
Bonjour,

Mihamina Rakotomandimby wrote:
Sur un Apache 2 j'ai un .htacces avec environ 100000 lignes comme
celles-ci:
RewriteRule mecanicien-paris-momo.php php/fiches.php?id8209


...
Maintenant, est-ce que 100000 lignes de reecritures aussi simples
peuvent mettre à genoux un tel serveur? Les faits semblent dire que oui,
parceque manifestement c'est la galère.



Oui, le .htaccess aussi énorme peut mettre par terre ton serveur.
Déjà, je te conseille de mettre le flag [L] à la fin de chaque ligne,
sans quoi tout le fichier sera lu quoi qu'il arrive.

Ensuite, il me semble qu'il serait plus intéressant d'utiliser une
normalisation de tes urls pour pouvoir réduire ton fichier:

RewriteRule ^([a-zA-Z0-9-]+)_([0-9]+).php$ php/fiches.php?id=$2 [QSA, L]



--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces webmasters : http://www.c-p-f.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
Olivier Masson
Le #22032551
Mihamina Rakotomandimby a écrit :

Si la reponse est OUI, alors est-ce qu'il y a une bonne pratique à
recommander pour un tel volume? Voire peut-etre meme une solution
alternative...




Salut,

Je ne sais pas s'il est possible d'optimiser côté Apache, mais
y'aurait-il un problème à faire des redirection 301 ?

En PHP :
header("Status: 301 Moved Permanently");
header("Location:http://".$url);

Et tu fais ta correspondance url-seo-friendly (et encore, c'est
controversé) <-> id avec une base (sqlite ?) plutôt que par ton .htaccess

Je dis ça sans y avoir réfléchi mais, effectivement, 10000 lignes de
rewriting, ça semble énorme.
Publicité
Poster une réponse
Anonyme