Bonjour a tous :) ,

j'ai un problème, étant nul a la base, je cherche a faire de l'url rewritte... Mais j'ai beau regarder, et re-regarder le tutoriel, mais j'y arrive pas :-° ...

Je voudrais transformer cette url site/index.php?p=membre/inscription en : site/inscription.php...

Quelqu'un aurais une idée s'il vous plait :D

Merci d'avance.

Cordialement Elo.

12 réponses


Havok
Réponse acceptée

Ok.
Juste pour inscription.html, tu devrais essayer ça :

RewriteEngine on
RewriteRule ^inscription\.html$ index.php?p=membre/inscription [QSA,L] //La règle spécifique à ce que tu demandes
RewriteRule ^(.*)$ index.php?p=$1 [QSA,L] //La règle générale de redirection pour avoir le même fonctionnement que dans le tutorial
Havok
Réponse acceptée

En fait, après un RewriteRule, tu as deux choses à remettre :

  • l'URL que tu souhaites afficher dans la barre d'adresse du navigateur / dans tes liens HTML (habituellement, ça se capture avec une Regex (Expression régulière), comme la ligne 3 du code de mon post précédent. Techniquement c'en est encore une, mais ça utilise pas son plein potentiel on va dire.)
  • l'URL de base de l'application, celle qui fonctionne sans utiliser la réécriture

Dans la mesure où tu veux ici un cas particulier, pas de Regex au sens puissant du terme, on met directement l'URL que l'on souhaite : ici inscription.html (le \ sert à échapper le point qui est un caractère particulier)
Ensuite, tu lui indiques l'URL originale sur laquelle tu veux qu'il pointe, en l’occurrence, celle que tu nous as indiquée : index.php?p=membre/inscription (en gros index.php?p=$_GET'p']

Imaginons que tu veuilles faire ta page de connexion en connexion.html, avec connexion.php dans le dossier inscription, tu feras ça :

RewriteEngine on  
RewriteRule ^inscription\.html$ index.php?p=membre/inscription [QSA,L] //La règle spécifique à ce que tu demandes  
RewriteRule ^connexion\.html$ index.php?p=membre/connexion [QSA,L] 
RewriteRule ^(.*)$ index.php?p=$1 [QSA,L] //La règle générale de redirection pour avoir le même fonctionnement que dans le tutorial

Et ainsi de suite...
Cela dit, ça peut vite devenir fastidieux.

Salut !

Voici un petit exemple :

RewriteEngine on
RewriteBase /
RewriteRule ^(.*) http://www.tonadresse.fr/site [QSA,L,R=301]
RewriteRule ^inscription.php$ index.php?p=membre/inscription

A mettre bien sûr dans le .htaccess. Je ne te garantie pas que ça marche parce que j'ai un peu du mal aussi avec l'URL Rewriting.
Cordialement ZiOu !

eloyas
Auteur

je test sa dès que posible, et je te tien au courant :p

eloyas
Auteur

Bonjour :) ,

après test de ton code, il me dit, que je rentre dans une boucle infini...

Alors, j'ai tester ceci :

RewriteEngine on
RewriteRule ^([a-z\/]+)$ index.php?p=$1

Mais sa ne marche pas non plus :'( ...

Quelqu'un aurais la solution ?

Merci d'avance.

Cordialement Elo.

As-tu essayé le code de NiOu sans la troisième ligne (celle avec le QSA) ?

Salut,

C'est que pour ce cas là ou c'est général ?

Cordialement.

eloyas
Auteur

Bonjour :) ,

je fais un petit up, et j'ai quelque nouveauté pour vous si sa peux vous aidé a m'aidez.
Sur ce lien
, j'ai suivi l'étape C pour savoir si l'url rewrite était activé...

Mais sa ne march <u>ais</u> pas... Après quelque recherche (d'as peut prêt 8 heure) sur le net, j'ai trouve que le code la :

RewriteEngine on
RewriteRule ^test\.html$ /test.php [L]

devais etre remplacer par celui la :

RewriteEngine on
RewriteRule ^test.html$ test.php [L]

Si vous avez bien regarder, vous remarquer qu'il n'y a pas besoin de / et \ ...
Bref, j'ai essayé le deuxième code et sa a marcher.

Donc j'ai repris mes tests, mais rien a faire.

Je ré explique se que je veux faire :

J'ai mes liens sous cette forme : localhost/site/index.php?p=$_GET'p'].

J'ai mon dossier site qui contient, 2 fichier : content et template.

Voici une image de <u><strong>l'organisation de mes fichiers</strong></u>

Donc quand je veux acceder a la page inscription.php, je mets cette url : site/index.php?p=membre/inscription.php
Et ce que je veux moi c'est : site/inscription.html

Si quelqu'un a une solution je suis preneur :D .

Merci d'avance.

Cordialement Elo.

La question de Toppy est importante, tu devrais y répondre pour qu'on puisse te fournir une réponse optimale.

eloyas
Auteur

Ben je sais pas :) ,

c'est la premiere ré ecriture d'url que je fais ...

Cordialement Elo.

eloyas
Auteur

Sa marche ^^ , pourrais tu m expliquer pour que je sache comment faire avec les autre url ^^

Cordialement Elo.

eloyas
Auteur

Merci pour cette explication, sa va être plus simple a l'avenir ^^ .

Cordialement Elo.