URLrewriting et plantage serveur

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

papa
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Mar Sep 21, 2004 11:34

URLrewriting et plantage serveur

Message le Sam Jan 19, 2008 16:10

Bonjour,
J'ai un serveur qui plante (saturation) depuis que je lui ai installé un url rewriting.

je ne fais pas de renomage simplementje transforme mes adresse :

page1.php?VAR1=x&VAR2=y
et
Page3633.php?VAR5268=v

EN

page1,VAR1,x,VAR2,y,et,commentaire-qui-passe-en-variable.html
et
Page3633,VAR5268,v,et,commentaire-qui-passe-en-variable.html

la formule magique suivante dans le .HTACCESS:


Code: Tout sélectionner
RewriteRule (.*)(,.+),([^,]+),([^,&]*)([^,]*)\.html $1$2&$3=$4$5\.html [N]
RewriteRule (.*),([^,]+),([^,]*)(.*)\.html $1.php?$2=$3$4 [L]
RewriteRule ^(.*).html $1.php [L]


me les remets au format php.


En test ça marche bien et je ne retrouve pas de code d'erreur du genre File does not exist dans les error_log
mais en production il suffit qu'un ou deux robots "googleboot" ou "voila BETA" arrivent, pour me planter le site sans que j'arrive à savoir d'où ça vient.

Ensuite tout plante jusqu'au reboot du serveur

Je vous precise que je suis attaché à utiliser un rewrite assez générique avec des virgules pour ne pas avoir à reprendre tous me liens qui ont des "-" et des" _" ou encore des "123"

Merci de votre aide
Dernière édition par papa le Mer Jan 23, 2008 11:16, édité 1 fois.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3311
Inscription: Mar Nov 16, 2004 18:27

Message le Sam Jan 19, 2008 18:14

peut-etre une loupe dans ton code ?

Code: Tout sélectionner
### EMPECHE LE CODE DE BOUCLER
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^.*$ - [L]



Met un flag dans tes regles pour alleger la recherche

Code: Tout sélectionner
RewriteRule page(,.+),([^,]+),([^,&]*)([^,]*)\.html page$1&$2=$3$4\.html [N]


et allege tes classes qui sont toute tres gourmandes en ressources:
([^,]+) veut dire tout sauf la virgule alors qu'un ([0-9]+) devrait suffir.

papa
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Mar Sep 21, 2004 11:34

Message le Lun Jan 21, 2008 7:14

Merci, je vais essayer ça ce matin et je te dirai le résultat.

Est-ce que je peux abuser de ta patience pour te demander d'être un peu plus didactique :
Question 1
je crois comprendre de ce que tu dis, qu'en resserant mes codes autour de mes carcatères utilisés j'économise de la ressource donc si je mets mes noms de page à réécrires en t^te de code c'est mieux que de partir d'un trop ouvert
Code: Tout sélectionner
([^,]+)
?
Dans ce cas est-ce que je peux utiliser conjointement les deux codes CàD
d'abord des lignes codes pour des noms de page définit et au cas ou un lien ne serait pas dans le HTACCES utiliser alors la formule générale.
je devrais alors economiser de la ressource, non ?

Questions 2
ayant trois niveau de repertoire, J'ai vu que le HTACCESS du niveau 2 joue pour le niveau trois (c'est à dire qu'il traduit les codes des sous repertoires sans que je remette de htacces dans ces repertoires) Est-ce qu'il vaut mieux alors ne mettre qu'un seul HTACCESS en racine et donner les règles pour les sous repertoires ou vaut-il mieux scinder les rêgle par répertoire quitte à les répeter ?
Quid alors du demarrage
Code: Tout sélectionner
RewriteEngine On

peut-on le repeter sans risque dans chaque repertoire ?

Question 3
Code: Tout sélectionner
### EMPECHE LE CODE DE BOUCLER
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^.*$ - [L]


Peux-tu détailler un peu plus ce que fait cette fonction, elle bloque le code à un certain niveau de répétition Non ?

Merci d'avance
Hugues
Dernière édition par papa le Mer Jan 23, 2008 11:16, édité 2 fois.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3311
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Jan 21, 2008 12:34


Oui tu as compris
Commence ta regle avec un flag et fait des classes moins gourmandes en ressources.


- Avec l'.htaccesss a la racine, tu veux que ton .htaccess fonctionne pour les fichiers du repertoire /annuaire/ par exemple, il te faut mentionner le chemin dans la regle :
RewriteRule $ /annuaire/index.php [L]
- L'autre methode consiste a mettre directement le fichier .htaccess dans le repertoire, dans ce cas la regle ne contient plus le chemin du rep:
RewriteRule $ /index.php [L]


ce code va forcer la redirection en empechant le moteur de boucler. Sans danger ^^

papa
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Mar Sep 21, 2004 11:34

Message le Lun Jan 21, 2008 14:33

Merci pour tes precisions,
Ya un truc que je ne comprends pas dans mes réécritures

je bug sur la routine d'analyse de variable (mon séparateur est la virgule


RewriteRule ^toutes-les-locations(,.+),([^,]+),([^,&]*)([^,]*)\.html toutes-les-locations$1&$2=$3$4\.html
RewriteRule ^toutes-les-locations,([^,]+),([^,]*)(.*)\.html toutes-les-locations.php?$1=$2$3 [L]


me donne bien

[url]http://127.0.0.1/locations-de-vacances/toutes-les-locations.php?DEP=36&et=dans%20l-Indre[/url]
avec

http://127.0.0.1/locations-de-vacances/toutes-les-locations,DEP,36,et,dans%20l-Indre.html

En revanche il me donne :

[url]http://127.0.0.1/locations-de-vacances/toutes-les-locations.php?DEP=36,et,dans%20l-Indre&ORDER=1[/url]

avec

http://127.0.0.1/locations-de-vacances/toutes-les-locations,DEP,36,et,dans%20l-Indre,ORDER,1.html
Dernière édition par papa le Mer Jan 23, 2008 11:19, édité 1 fois.

papa
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Mar Sep 21, 2004 11:34

Message le Lun Jan 21, 2008 15:45

Eureka,
j'avais oublié le [N] en fin de ligne qui doit servir de repetiteur

Bon il ne me reste plus qu'à alléger mes classes de carcatères


Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités