Ralentissement url rewriting

Nouveau WRInaute
Bonjour à tous et merci pour l'ajout à ce forum.

Voici mon petit problème.

Afin d'éviter les urls du type :
page.php?id=$1&idj=$2&area=$3

j'ai construit ce petit url rewriting :
Code:
+FollowSymlinks
RewriteEngine On
RewriteRule ^page-(.+)-([0-9]+)-(.+)\.html page.php?id=$1&idj=$2&area=$3 [L]

Hors, cela ralentit carrément le chargement des pages (3-4 secondes) alors que dans la méthode page.php?var=xxx cela se fait instantanément.

Après moultes recherches sur le web je suis tombé ici.

Si quelqu'un voit une erreur dans mon code, je suis preneur.

PS : je suis hébergé chez ovh
 
WRInaute accro
Bonjour Monsieur

Peut être un $ à la fin de : ^page-(.+)-([0-9]+)-(.+)\.html

C'est-à-dire : ^page-(.+)-([0-9]+)-(.+)\.html$

Amicalement.
 
Nouveau WRInaute
Alors je viens d'essayer, cela ne marche toujours pas.

Je me demande si cela ne vient pas du fait que je passe trois variables dans l'url.

J'avoue que je bloque.
 
Nouveau WRInaute
Oui, voici l'exemple


page.php?id=$1&idj=$2&area=$3

id = Char (4)
idj = nb entier
area = char (3)

par exemple :
page-AU-15-FR.html

Merci à vous
 
Dernière édition:
WRInaute accro
Le regex (.+) est très gourmand en temps machine, ici le quantificateur + boucle sur toute les modèles possibles, le plus rapide est de passer par une classe en lui imposant des modèles pre définis ([a-zA-z0-9]+)
L'autre possibilité est d'utiliser le quantificateur "paresseux" (.+?) pour réduire le nombre de correspondances sur les occurrences.
 
Nouveau WRInaute
Salut et merci pour ta réponse.

Je viens d'essayer avec les deux cas, je ne comprends pas, ça rame toujours autant (que pour cette page à trois variables), toutes les pages à une variable chargent immédiatement...

Cela pourrait-il venir d'OVH ? Mais je doute, car sur d'autres sites cela fonctionne rapidement :(
 
WRInaute accro
Reste les logs pour débuger
Chez OVH tu as accès à tes logs, un tel ralentissement va se voir.
Le principe c'est de lancer ton script a une heure donnée et de regarder les logs le lendemain pour voir ce qui ce qui s'est passé a l'heure donnée.
 
WRInaute passionné
Vous nous donnez l'URL pour qu'on teste ?
Même mille variables, une regex ne fera pas utiliser 3 secondes de CPU sur un serveur, on est pas sur un Amstrad là...
 
WRInaute passionné
Essaye (.*) à la place (.+). ;-)

Si tu souhaites une redirection définitive, place une redirection 301 avec le drapeau [R=301,L] à la place de [L].
 
WRInaute occasionnel
Tu peux aller dans la console de ton navigateur (F12).
Onglet "console" et tu coche "preserve log".
Tu actualise ta page, et tu vois s'il y a des erreurs qui en ressorte.

Et pour les redirections tu as l'addon "redirect path" chez chrome, ça aide bien à voir des erreurs de redirection. Il m'est arrivé d'avoir une lenteur sur une de mes pages qui en fait passait par deux autres pages avant d'arriver au bon endroit !
 
Discussions similaires
Haut