Rewriting et système de cache

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

jiib75
Nouveau WRInaute
 
Messages: 10
Inscription: Jeu Déc 11, 2003 0:07

Rewriting et système de cache

Message le Lun Avr 19, 2004 0:04

Bonjour à tous,

J'utilise actuellement une règle de réécriture qui permet de transformer toutes les requetes de sousdomaine.site.com/* vers le repertoire users/sousdomaine/*

Code: Tout sélectionner
RewriteCond %{REQUEST_URI}   ^\/[^\/]+\.[^\/]+$ [NC]
RewriteRule ^(.+)   %{HTTP_HOST}$1 [C]
RewriteRule ^(www\.|)([^.]+)\.site\.com/(.*) /users/$2/$3 [L]


Je souhaite maintenant utiliser un système de cache qui permet de renvoyer la page statique si elle existe, sinon appeler une page dynamique qui va la reconstruire à la volée.
J'ai vu des exemples sur ce sujet, (qui utilisent notamment RewriteCond %{REQUEST_FILENAME} !-s ) mais mon cas est un peu différent,car il y a une étape en plus. en effet, je dois commencer par reecrire l'url, puis vérifier si celle-ci existe et enfin soit renvoyer le tout, soit passer la main à un script.

Voici 1 des transformations que je souhaite faire :

1.Transformer sousdomaine.site.com/yyyy/mm/dd/fichier.html
vers le repertoire users/sousdomaine/yyyy_mm_dd_fichier.html

et , seulement si ce fichier n'existe pas, renvoyer une page dynamique du style
/cfm/fe/FrontEngineUtility.cfc?method=getPage&siteName=sousdomaine&type=archive&year=yyyy&month=mm&day=dd

J'en ai d'autres, mais elle suivent la même logique, donc je devrais me débrouiller tout seul pour la suite :-)

J'ai déjà fait un test en ajoutant à la suite du code ci-dessus le code suivant( et en changeant le flag [L] par [C] du haut aussi)

Code: Tout sélectionner
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule   ^/users/([^\/]+)/([^\/]+)  /cfm/fe/FrontEngineUtility.cfc?method=getPage&siteName=$1  [PT,L,NC]


Mais dans ce cas, toutes les pages sont renvoyés en dynamique, donc j'en deduis qu'il y a un problème avec la condition...

Merci beaucoup pour votre aide.



Jiib

Oncle Tom
WRInaute passionné
WRInaute passionné
 
Messages: 812
Inscription: Lun Mar 31, 2003 11:16

Message le Lun Avr 19, 2004 8:43

Question : pourquoi ne testes tu pas l'existence du cache dans ta page CFM : si le cache existe tu le renvoies sinon tu affiche la page dynamique.

Ca fait beaucoup de manip' je trouve ^^ enfin c'est mon avis.

jiib75
Nouveau WRInaute
 
Messages: 10
Inscription: Jeu Déc 11, 2003 0:07

Message le Lun Avr 19, 2004 9:09

Oui Jedi, ca peut être également une solution de gérer le cache au niveau de ColdFusion et non de Apache. Cependant je trouvais ça mieux de gèrer le cache avec le serveur web car cela permettait de moins charger le serveur d'application, et également de pouvoir servir quand même les pages statiques si ce dernier tombe. Mais en effet, pourquoi pas ta solution....

D'autres avis ?

Jiib

Oncle Tom
WRInaute passionné
WRInaute passionné
 
Messages: 812
Inscription: Lun Mar 31, 2003 11:16

Message le Lun Avr 19, 2004 9:12

Hm si tes conditions sont bonnes mais le résultat "faux", t'as pensé à regardé ce qu'il te retournait comme fichier HTML de cache ? Parce que s'il le faut c'est bon mais y'a une p'tite erreur à 2 balles qui traine.

jiib75
Nouveau WRInaute
 
Messages: 10
Inscription: Jeu Déc 11, 2003 0:07

Message le Lun Avr 19, 2004 9:29

Justement je pense que c'est le condition REQUEST_FILENAME qui n'est pas bonne, j'ai déjà essayé de faire un test avec les lignes ci-dessous, et dans tous les cas il appelle la page de script Coldfusion, même si le fichier existe déjà dans le repertoire.

Or je souhaite qu'il appelle le script uniquement si la page demandée après le RewriteRule du premier bloc est introuvable

Code: Tout sélectionner
RewriteCond %{REQUEST_URI}   ^\/[^\/]+\.[^\/]+$ [NC]
RewriteRule ^(.+)   %{HTTP_HOST}$1 [C]
RewriteRule ^(www\.|)([^.]+)\.site\.com/(.*) /users/$2/$3 [L]


RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule   ^/users/([^\/]+)/([^\/]+)  /cfm/fe/FrontEngineUtility.cfc?method=getPage&siteName=$1  [PT,L,NC]


ne fonctionn pas, car la condition est toujours vrai...

jiib75
Nouveau WRInaute
 
Messages: 10
Inscription: Jeu Déc 11, 2003 0:07

Message le Lun Avr 19, 2004 9:30

Justement je pense que c'est le condition REQUEST_FILENAME qui n'est pas bonne, j'ai déjà essayé de faire un test avec les lignes ci-dessous, et dans tous les cas il appelle la page de script Coldfusion, même si le fichier existe déjà dans le repertoire.

Or je souhaite qu'il appelle le script uniquement si la page demandée après le RewriteRule du premier bloc est introuvable

Code: Tout sélectionner
RewriteCond %{REQUEST_URI}   ^\/[^\/]+\.[^\/]+$ [NC]
RewriteRule ^(.+)   %{HTTP_HOST}$1 [C]
RewriteRule ^(www\.|)([^.]+)\.site\.com/(.*) /users/$2/$3 [L]


RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule   ^/users/([^\/]+)/([^\/]+)  /cfm/fe/FrontEngineUtility.cfc?method=getPage&siteName=$1  [PT,L,NC]


ne fonctionn pas, car la condition est toujours vrai...

jiib75
Nouveau WRInaute
 
Messages: 10
Inscription: Jeu Déc 11, 2003 0:07

Message le Lun Avr 19, 2004 9:38

Justement je pense que c'est le condition REQUEST_FILENAME qui n'est pas bonne, j'ai déjà essayé de faire un test avec les lignes ci-dessous, et dans tous les cas il appelle la page de script Coldfusion, même si le fichier existe déjà dans le repertoire.

Or je souhaite qu'il appelle le script uniquement si la page demandée après le RewriteRule du premier bloc est introuvable

Code: Tout sélectionner
RewriteCond %{REQUEST_URI}   ^\/[^\/]+\.[^\/]+$ [NC]
RewriteRule ^(.+)   %{HTTP_HOST}$1 [C]
RewriteRule ^(www\.|)([^.]+)\.site\.com/(.*) /users/$2/$3 [L]


RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule   ^/users/([^\/]+)/([^\/]+)  /cfm/fe/FrontEngineUtility.cfc?method=getPage&siteName=$1  [PT,L,NC]


ne fonctionn pas, car la condition est toujours vrai...


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