| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
papa Nouveau WRInaute
Inscrit le: 21 Sep 2004 Messages: 49
|
Posté le : Sam Jan 19, 2008 17:10 Sujet du message: URLrewriting et plantage serveur |
|
|
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: |
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 12:16; édité 1 fois |
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2818 Localisation: Bangalore +3h30
|
Posté le : Sam Jan 19, 2008 19:14 Sujet du message: URLrewriting et plantage serveur |
|
|
peut-etre une loupe dans ton code ?
| Code: |
### EMPECHE LE CODE DE BOUCLER
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^.*$ - [L] |
Met un flag dans tes regles pour alleger la recherche
| Code: |
| 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 Nouveau WRInaute
Inscrit le: 21 Sep 2004 Messages: 49
|
Posté le : Lun Jan 21, 2008 8:14 Sujet du message: URLrewriting et plantage serveur |
|
|
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
?
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
peut-on le repeter sans risque dans chaque repertoire ?
Question 3
| Code: |
### 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 12:16; édité 2 fois |
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2818 Localisation: Bangalore +3h30
|
Posté le : Lun Jan 21, 2008 13:34 Sujet du message: URLrewriting et plantage serveur |
|
|
1°
Oui tu as compris
Commence ta regle avec un flag et fait des classes moins gourmandes en ressources.
2°
- 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]
3°
ce code va forcer la redirection en empechant le moteur de boucler. Sans danger ^^ |
|
| |
|
 |
papa Nouveau WRInaute
Inscrit le: 21 Sep 2004 Messages: 49
|
Posté le : Lun Jan 21, 2008 15:33 Sujet du message: URLrewriting et plantage serveur |
|
|
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
[url]http://127.0.0.1/locations-de-vacances/toutes-les-locations,DEP,36,et,dans%20l-Indre.html[/url]
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
[url]http://127.0.0.1/locations-de-vacances/toutes-les-locations,DEP,36,et,dans%20l-Indre,ORDER,1.html[/url]
Dernière édition par papa le Mer Jan 23, 2008 12:19; édité 1 fois |
|
| |
|
 |
papa Nouveau WRInaute
Inscrit le: 21 Sep 2004 Messages: 49
|
Posté le : Lun Jan 21, 2008 16:45 Sujet du message: URLrewriting et plantage serveur |
|
|
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 |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
|
|