Administrateur PHPfrance |
13231 Messages
21 sept. 2010, 11:31
Pour en revenir au soucis de base, je pense qu'il faut que tu commences par essayer de comprendre comment marche Apache et PHP.
Quand tu appelles une ressources (= une url), Apache regarde s'il trouve un fichier PHP a cet endroit. S'il le trouve, il demande à PHP de le parser (Note : je met de côté le principe de handler, ça sera pour plus tard)
Si Apache ne trouve pas de fichier, il retourne une erreur 404.
Ensuite, viens par dessus le principe de l'url rewriting, qui consiste à dire à Apache de réécrire l'url pour atteindre un fichier, même si la ressource n'existe pas.
Tout serveur Apache implémente une règle de réécriture simple : celle du index.php
Quand tu appelles l'url "
http://www.exemple.fr/dossier/", Apache réécrit cette route en "
http://www.exemple.fr/dossier/index.php", et c'est ça qui fait que ton index.php est exécuté (bon, en vrai, il cherche d'abord en index.html, puis un index.php s'il ne le trouve pas)
Bref, tout ça pour t'expliquer que ce n'est pas PHP qui redirige de "
http://www.exemple.fr/dossier/" vers "
http://www.exemple.fr/dossier/index.php" et qu'il n'est pas possible, complètement en PHP, de mettre en place un système de réécriture.
Toutefois, il serait possible de vraiment aller sur "
http://www.exemple.fr/dossier/page.php", de faire le traitement nécessaire, puis de rediriger sur "
http://www.exemple.fr/dossier/" (donc "
http://www.exemple.fr/dossier/index.php") dans lequel script tu devrais gérer le cas du retour (C'est la solution que t'a expliqué stealth35)