URL rewriting: boucle infinie

Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics

mhammout
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Enregistré le: 26 Juil 2005

URL rewriting: boucle infinie

Message le Mer Fév 15, 2006 10:45

Hello,

Je cherche à intercepter l'url de l'utilisateur pour un traitement (statistiques d'accès) avant d'afficher l'url demandée.

En d'autres termes, j'ai fait ça:
htaccess:
RewriteEngine on
RewriteRule .* process.php [nc,L]


et dans le fichier process.php, je fais des traitements puis un header('Location: '.$_SERVER[SERVER_NAME].$_SERVER['REQUEST_URI']);

Le problème, biensûr, c'est que lorsque le header est envoyé, il est intercepté par l'htaccess et du coup tout part dans une boucle infinie :(

J'imagine que c'est un problème de newbie... ça tombe bien: j'en suis un :lol:

Thanx, mhammout

Sir Dipp
WRInaute passionné
WRInaute passionné
 
Messages: 1025
Enregistré le: 21 Juil 2003

Message le Mer Fév 15, 2006 11:00

Faut soit faire un coockie pour différencier le premier chargement de la page, soit les sessions.

A+

mhammout
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Enregistré le: 26 Juil 2005

Message le Mer Fév 15, 2006 11:05

Hello,

Merci pour ta réponse mais n'y a-t-il pas un moyen de différencier un utilisateur du header? Car si je fais un cookie ou une session et qu'un user tape 2 fois l'url, je ne pourrai pas l'intercepter 2 fois.
Je ne veux pas l'intercepter seulement si elle provient du fichier process.php...

Sir Dipp
WRInaute passionné
WRInaute passionné
 
Messages: 1025
Enregistré le: 21 Juil 2003

Message le Mer Fév 15, 2006 11:08

Tu peux jouer avec le referer, mais je doutes que ce soit plus efficasse que les sessions.

ChezThierry
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 273
Enregistré le: 21 Oct 2005

Message le Mer Fév 15, 2006 12:35

Histoire de contourner le problème, tu n'as pas accès aux log apache ? c'est tout de même plus pratique pour faire les stats, avec un outil comme awstats par exemple, directement depuis les logs, non ?

mhammout
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Enregistré le: 26 Juil 2005

Message le Mer Fév 15, 2006 12:51

L'histoire est que je voulais développer un script PHP de stats autant portable que possible et sans qu'il soit nécessaire de mettre sur chaque page d'un site l'utilisant quelque chose comme <?php include('stat/stat.php');?> Du coup, pouvoir le faire via l'url rewriting aurait été parfait, mais c'est visiblement pas (ou difficlement) possible...

Je vais regarder du côté du REFERRER...

Merci,
mhammout

PS: j'ai découvert l'url rewriting aujourd'hui, alors si je raconte des tracks, sorry, j'suis newbie ;)

mhammout
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Enregistré le: 26 Juil 2005

Message le Mer Fév 15, 2006 12:51

tracks = cracks, vous aurez corrigé!


fandecine
Modérateur
Modérateur
 
Messages: 2192
Enregistré le: 2 Avr 2005

Message le Mer Fév 15, 2006 13:14

bon!

Le fichier htaccess ne sert pas uniquement à faire du rewriting. Tu peux également y mettre des directives apache (comme dans httpd.conf) et des directives php.

Dans le cas qui t'intéresse, tu peux mettre:
Code: Tout sélectionner
php_value auto_prepend_file /chemin_vers_ficher_a_inclure/fichier_a_inclure.php


Afin que tu comprenne mieux, voici un extrait de la doc PHP:
auto_prepend_file string
Spécifie le nom d'un fichier qui sera automatiquement ajouté avant le fichier principal. Le fichier est inclus comme s'il avait été appelé avec la fonction include , donc include_path est utilisé.

mhammout
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Enregistré le: 26 Juil 2005

Message le Mer Fév 15, 2006 13:19

Je viens justement de mettre la main sur auto_prepend_file et ça fonctionne tip-top! Seul point négatif: cela ne fonctionnera que pour des fichiers php semble-t-il, mais soit, c'est déjà suffisant pour moi!

Merci pour tout,
mhammout

Patrice A.
WRInaute passionné
WRInaute passionné
 
Messages: 2415
Enregistré le: 11 Fév 2005

Message le Mer Fév 15, 2006 20:43

fandecine a écrit:bon!

Le fichier htaccess ne sert pas uniquement à faire du rewriting. Tu peux également y mettre des directives apache (comme dans httpd.conf) et des directives php.

Dans le cas qui t'intéresse, tu peux mettre:
Code: Tout sélectionner
php_value auto_prepend_file /chemin_vers_ficher_a_inclure/fichier_a_inclure.php


Afin que tu comprenne mieux, voici un extrait de la doc PHP:
auto_prepend_file string
Spécifie le nom d'un fichier qui sera automatiquement ajouté avant le fichier principal. Le fichier est inclus comme s'il avait été appelé avec la fonction include , donc include_path est utilisé.

Ca marche en mutualisé cette petite merveille ?


fandecine
Modérateur
Modérateur
 
Messages: 2192
Enregistré le: 2 Avr 2005

Message le Jeu Fév 16, 2006 9:12

Dj_Apx a écrit:Ca marche en mutualisé cette petite merveille ?


Des mutualisés, il y en a des tonnes! Il faut que tu essaye... :wink:


Formation recommandée sur ce thème :

Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... 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 :