Reécriture des Urls

Eléphant du PHP | 258 Messages

20 janv. 2010, 15:59

Bonjour

Je cree des urls sous la forme
sous .htacess
RewriteEngine On
RewriteRule ^competitions/([0-9]+)/([0-9]+)\.html$ competitions.php?page=$1-$2 [L]
Mais cela ne marche pas.
je ne vois pas le problème. merci de vos réponses
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Mammouth du PHP | 2937 Messages

20 janv. 2010, 18:22

D'abord, as-tu vérifié si ton hébergeur permettait la réécriture d'URL ?

Ensuite, essaie de corriger ton code comme suit :

Code : Tout sélectionner

Options +FollowSymlinks RewriteEngine On RewriteRule ^competitions/([0-9]+)/([0-9]+)\.html$ /competitions.php?page=$1-$2 [L]
En plaçant ton .htaccess à la racine du site (ou du sous-domaine, c'est selon).

ViPHP
ViPHP | 5462 Messages

20 janv. 2010, 18:25

Options +FollowSymlinks

c'est que pour les raccoursis

Eléphant du PHP | 63 Messages

20 janv. 2010, 19:28

Sur certains serveurs il faut aussi spécifier le RewriteBase, même s'il s'agit seulement de /.

Eléphant du PHP | 258 Messages

20 janv. 2010, 20:04

oh j'ai oublié de préciser que c'est EasyPhp 5.3.

toutes mes excuses....
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Eléphant du PHP | 258 Messages

21 janv. 2010, 13:57

coucou?

il y a une solution?
merci
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 janv. 2010, 23:37

As-tu essayé de suivre les remarques de Victor ? Quels sont les résultats ?

Dans ta configuration d'apache, as-tu le droit d'utiliser des fichiers htaccess pour surcharger localement la config du serveur ? as-tu le module rewrite activé ?

Quand tu dis que "cela ne marche pas", qu'est ce que cela fait exactement ? erreur 500 ? erreur 404 ? page blanche ? navigateur qui clignotte ? écran qui se met à fondre ? téléphone qui sonne quand tu es sous la douche ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 258 Messages

25 janv. 2010, 16:10

je réponds à ces questions suivantes
- as-tu le droit d'utiliser des fichiers htaccess pour surcharger localement la config du serveur ?
je ne sais pas. j'utilise easyphp 5.3.
- as-tu le module rewrite activé ?
oui, en décommandant cette ligne : LoadModule rewrite_module modules/mod_rewrite.so
- "cela ne marche pas", qu'est ce que cela fait exactement ?
quand je survole les liens, je remarque dans la barre d'état que les liens ne sont pas toujours modifiés comme je voulais. pas d'erreur comme 500 ni 404. quand je clique sur ces liens, ils m'orientent bien vers les pages désirées mais avec la même url (pas comme je voulais).
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 janv. 2010, 22:39

Il y a deux choses à distinguer : la réécriture à proprement parler, c'est à dire la redirection que va faire apache pour ouvrir la page "competitions.php?page=1-2" quand l'utilisateur va ouvrir l'url "competitions/1/2.html", et la modification des liens de tes pages afin de les faire pointer vers competitions/1/2.html.

Si quand tu rentres directement l'url "competitions/1/2.html" dans ton navigateur, c'est le traitement de la page competitions.php?page=1-2 qui est exécuté, alors ta redirection fonctionne correctement. (c'est totalement transparent pour l'utilisateur)

Si quand tu survoles un lien tu vois l'adresse "competitions.php?page=1-2", c'est que dans ton code tu as omis de corriger ce lien et il te suffit de le changer pour qu'il pointe vers "competitions/1/2.html" à la place :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...