URL Rewriting site dynamique

Eléphanteau du PHP | 25 Messages

01 août 2015, 11:38

Bonjour à tous, je souhaite réécrire proprement mes urls qui sont actuellement sous la forme:
index.php?id=1 pour la page d'accueil
index.php?id=2 pour la page présentation
ect...

J'ai donc créé un fichier .htaccess avec ces lignes:

Code : Tout sélectionner

#Options +FollowSymlinks RewriteEngine on RewriteRule ^accueil$ ?id=1 [L] RewriteRule ^presentation$ ?id=2 [L]
Seulement, il ne se passe rien, l'affichage reste index.php?id=...
Par contre si je tape manuellement dans la barre d'adresse monsite.fr/accueil, ça fonctionne.
Pouvez-vous m'éclairer sur ce que je dois faire pour que l'url se réécrive?
D'avance merci!

Eléphant du PHP | 243 Messages

01 août 2015, 12:41

C'est peut être car tu rediriges tes pages vers ..?id=1 et non vers ../accueil.
En gros, les deux pages vont exister, il faudra donc remplacer toutes les redirections vers la page : index.php?id=1 par : monsite.fr/accueil
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Eléphanteau du PHP | 25 Messages

01 août 2015, 13:05

Je ne suis pas sûr de comprendre ce que tu veux dire. Tu préconises un code comme cela?

Code : Tout sélectionner

#Options +FollowSymlinks RewriteEngine on RewriteRule ^monsite.fr/accueil$ ?id=1 [L] RewriteRule ^monsite.fr/presentation$ ?id=2 [L]

Eléphant du PHP | 243 Messages

01 août 2015, 14:18

Non ce que je veux dire, c'est qu'avec ton code, normalement les pages site.fr?id=1 et site.fr/accueil renverront la même page.
Du coup, toi tu dis ne plus vouloir la page site.fr?id=1; mais cette page, comment l'obtiens-tu ? Est-ce pas redirection ou directement lorsque tu accèdes à site.fr ?
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Eléphanteau du PHP | 25 Messages

01 août 2015, 14:22

J'obtiens site.fr?id=1 directement en accédant au site. J'ai codé tout le site avec ce système d'id. Chaque lien redirige vers un id différent. N'y a t-il pas moyen de faire en sorte que si je tape /?id=1, il redirige automatiquement vers /accueil? Pour justement éviter ce doublon.

Eléphant du PHP | 243 Messages

01 août 2015, 14:28

Peut être avec du Javascript. Essaye d'ajouter ce code au début :

Code : Tout sélectionner

<script> function myFunction() { location.replace("http://site.fr/accueil") } </script>
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Eléphant du PHP | 243 Messages

01 août 2015, 14:32

Excuse moi, petite erreur de ma part

Code : Tout sélectionner

<script> if(document.location.href !=" http://site.fr/accueil"){ location.replace("http://site.fr/accueil") } </script>
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Mammouth du PHP | 688 Messages

01 août 2015, 15:37

ce qu'il faut faire, c'est changer les liens dans le code html des pages pour passer de ?id=1 à accueil.
puis soit faire une redirection 301 (pas en javascript) si l'on accède à id=1 soit mettre une balise canonical