pickupjojo Posté 7 Septembre 2004 Posté 7 Septembre 2004 Bonjour à tous, Voilà, je fais la V4 de mon site car là, non seulement il n'est pas du tout optimisé pour le référencement, mais il a été fait en WYSIWYG et ça se voit très bien dans le code source... y'a rien de valide pour le W3C, même pas en HTML 4.01 Transitional. C'est donc pour ça que je fais une mise à jour complète : mise en page, vraies pseudos-frames, valide HTML 4.01 Transitional et CSS ainsi que URL rewriting. En clair, j'ai du boulot, et je suis loin d'avoir fini ! Mon problème est donc que je fais des pseudos frames genre "index.php?page=prout". La page "prout" est un fichier .php à la racine du site. Ne souhaitant pas modifier toutes les URL internes sur chacunes des pages du site, je préfère garder l'extension actuelle en .php3. Il m'a donc fallu mettre en place un URL rewriting qui dit que quand on demande "prout.php3", ça affiche en fait la page "index.php?page=prout", tout cela biensûr sans que le visiteur ne voit quoi que ce soit. Le hic là-dedans, c'est que "index.php3", sur l'actuelle version du site, est très utilisée par les visiteurs alors que je ne sais même pas pourquoi (un coup de Google certainement). Malheureusement, sur la v4, lorsque l'on demande l'index en PHP3, le fichier .htaccess ouvre donc "index.php?page=index".... Ce qui fait une boucle et affiche le site (en partie), dans le site ! J'ai alors pensé à plutôt utiliser "index.php3" pour le moteur des pseudos frames... mais quand on réfléchit, on se rend compte que ça reviendrai au même ! Je n'ai donc aucune solution, même quand je fais un index en .php3 sur le site, le .htaccess n'en prend pas compte. Merci d'avance pour votre aide, et à ceux qui m'ont lu ! Joffrey, complètement paumé dans le PHP ! PS: l'index du site demande à afficher "accueil.php". L'index pour les visiteurs devrait donc être "accueil.php3"...
Dan Posté 7 Septembre 2004 Posté 7 Septembre 2004 Salut pickupjojo, C'est parce que tu as fait une règle qui traite tous les fichiers en .php3 ... et que index.php3 entre donc dans ce cas de figure. Juste au dessus de ta règle qui doit être ressembler à: RewriteRule ([a-z0-9]+)\.php3$ index.php?page=$1 [NC,L] ajoutes une règle qui dite de ne rien faire pour index.php3, c'est très simple: RewriteRule index\.php3$ - [L] Dan
Nudrema Posté 7 Septembre 2004 Posté 7 Septembre 2004 Ou alors, tu peux mettre une condition sur le Rewrite (qui devrait avoir sensiblement le même effet que la solution de Dan) : RewriteCond %{REQUEST_URI} !.php3$RewriteRule ^([a-z0-9]+)\.php3$ index.php?page=$1 [NC][L]
pickupjojo Posté 8 Septembre 2004 Auteur Posté 8 Septembre 2004 Merci à tous, Je préfère la solution de Dan qui me conviendrait très bien. Malheureusement ça ne marche pas ! - Voici mon .htaccess : RewriteEngine on RewriteRule ^([a-zA-Z0-9_-]*)\.php3$ /v4/index.php?page=$1 [L] Merci d'avance ! Joffrey
pickupjojo Posté 9 Septembre 2004 Auteur Posté 9 Septembre 2004 Bon ben merci quand même, mais c'est réglé, il fallait mettre : RewriteRule ^index\.php3$ /v4/index.php [R=301]
Guest vchahun Posté 10 Septembre 2004 Posté 10 Septembre 2004 Moi je fonctionne avec ce code dans mon index.php, et ça marche très bien: @include "v4/".$_GET["page"].".php3"; (évidemment, c'est un peu plus sophistiqué, c'est juste pour montrer le principe
pickupjojo Posté 11 Septembre 2004 Auteur Posté 11 Septembre 2004 Disons que mon code est légèrement plus sécurisé !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant