URL rewriting sans htaccess

Eléphant du PHP | 422 Messages

20 sept. 2010, 17:53

hello

en passant par la page 404 on peut faire de l'urlrewrinting 'batard'

mais pour le référencement ...????

++
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Mammouth du PHP | 19672 Messages

20 sept. 2010, 18:50

en passant par la page 404 on peut faire de l'urlrewrinting 'batard'
À condition de pouvoir surcharger la configuration du serveur en matière de redirection, donc dans le cas présent, ça ne pourra pas résoudre le problème.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
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)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer