URL rewriting: boucle infinie

Nouveau WRInaute
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
 
Nouveau WRInaute
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...
 
WRInaute occasionnel
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 ?
 
Nouveau WRInaute
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 ;)
 
WRInaute passionné
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:
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é.
 
Nouveau WRInaute
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
 
WRInaute passionné
fandecine a dit:
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:
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 ?
 
Discussions similaires
Haut