[RESOLU] Rewriting URL

Eléphant du PHP | 69 Messages

15 avr. 2016, 17:05

Bonjour,

J'ai récemment suivi un tutoriel pour la réécriture d'URL sur divers site web.
Hors je bloque un peu sur ma situation..

J'ai un fichier index avec $_GET[''] du genre : index?page=communaute.

donc j'ai : http://www.monsite.fr/index?page=communaute
et je voudrai : http://www.monsite.fr/communaute

Dans mon zolie fichier htaccess j'ai donc :
Options +FollowSymlinks
	RewriteEngine On
	RewriteRule ^$1.php$	index?page=$1	[L]
Et pourtant cela ne fonctionne pas, y'a t-il une erreur ou cela est juste impossible ?

Merci d'avance pour vos réponses, et profiter du soleil :D

Mammouth du PHP | 2703 Messages

15 avr. 2016, 17:09

par exemple :
RewriteRule ^([^.]+).php$ index?page=$1 [L]

Eléphant du PHP | 69 Messages

15 avr. 2016, 18:12

Merci de ta réponse.
Ça fonctionne pas, et je n'ai plus accès à index.php :/

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

15 avr. 2016, 23:23

Bonjour,

Tu peux tester ta regex ici :
http://martinmelin.se/rewrite-rule-tester/

Ton masque de capture n'est pas correct :
^$1.php$
signifie que le texte qui suit ton nom de domaine (communaute dans ton exemple) est de la forme "$1.php"
Il n'y a aucune raison qu'il y ait ici un $1 ni un .php puisque justement tu veux le retirer
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 69 Messages

15 avr. 2016, 23:38

En fait le $1 est un $_GET[''] donc je ne sais pas quel information je vais récupérer.
Dans notre exemple c'est communauté mais ça aurait pu être "accueil" "contact" etc.

Ce que je souhaiterai c'est que l'URL sois la valeur de $_GET['page']
Donc si j'ai : www.monsite.fr/index?page=communaute qu'il devienne -> www.monsite.fr/communaute

Eléphant du PHP | 69 Messages

16 avr. 2016, 12:10

C'est bon j'ai trouver :)

RewriteRule ^([a-z]*)$ index?page=$1 [L]

Petite info pour les futures chercheurs.
Dans mon cas je nomme pas mes fichiers avec leurs extensions, vue qu'OVH le permet..
ce qui veut dire que la valeur de $1 doit pas être suivis de ".php" ou ".html" sinon ERROR 404 :)