URLrewriting et plantage serveur
6 messages • Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
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:
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
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.
peut-etre une loupe dans ton code ?
Met un flag dans tes regles pour alleger la recherche
et allege tes classes qui sont toute tres gourmandes en ressources:
([^,]+) veut dire tout sauf la virgule alors qu'un ([0-9]+) devrait suffir.
- 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.
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
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
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.
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 ^^
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 ^^
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
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.
6 messages • Page 1 sur 1
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 :
- Google Chrome, le navigateur web de Google open source
- Comment créer une page web en PHP
- Easter Egg dans Google Chrome (fonctions cachées)
- Comparer les classes C de 2 adresses IP
- Tous les outils à connaître pour analyser un site
- Redirection (PHP, JavaScript, serveur...)
- Changements de nom de domaine et TrustRank
- Votre site doit toujours être accessible rapidement : conseil n°7 en référencement
- Changer d'hébergeur web sans pénaliser son référencement
- Aperçu des différents types de redirection
Consultez la description détaillée des produits ou services de Google suivants : Google Web Accelerator
- Analyse de la classe C (adresse IP)
Cet outil vous permet de vérifier si plusieurs sites sont hébergés sur la même classe C (adresse IP du serveur). - Analyse de l'entête HTTP
Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum