Bonjour tout le monde,

J'ai lu et chercher beaucoup de forum mais je reste bloqué, j'ai un compte sur un serveur mutualisé chez OVH, j'essaie de modifier l'affichage des url mais je bloque.
Voici mon code dans le fichier htaccess:

SetEnv PHP_VER 5_TEST
SetEnv REGISTER_GLOBALS 0

Options +FollowSymlinks

# Activation du module de reecriture d'URL :
RewriteEngine on

#--------------------------------------------------
# Pages Principales :
#--------------------------------------------------
RewriteRule ^accueil\.html$ /index.php?id=1 [L]
#RewriteRule ^présentation/.html$ /index.php?id=2 [L]
#RewriteRule ^services/.html$ /index.php?id=3 [L]
#RewriteRule ^contact/.html$ /index.php?id=5 [L]
#RewriteRule ^service-client/.html$ /index.php?id=6 [L]


Pouvez-vous m'aider ?
il faut mettre le chemin exact de la page cible (le point devant /index), sauf si le fichier index n'est pas dans le répertoire courant :
RewriteRule ^accueil\.html$ ./index.php?id=1 [L]

car '/index.php' pointe vers le répertoire racine du serveur
attention les autres lignes sont en commentaires, mais comportent une erreur supplémentaire, '/.' au lieu de '\.' dans l'URL source.
Modifié par Zebrou (14 Oct 2013 - 21:08)
Merci pour ta réponse mais ça ne change rien. J'ai toujours aucun résultat.
Je dois bien placer le fichier dans le dossier "www" ? j'ai déjà essayé dans le ''rot'' mais cela ne fonctionnait pas non plus.

J'ai vérifier que mon compte ovh me permettait bien de modifier l'url et je peux le faire.
tu as bien nommé ton fichier .htaccess ? (avec un point devant) ? tu l'as enregistré en UTF8 sans BOM ?
Salut,
oui il est bien en utf-8 (au moment ou je l'upload depuis mon pc après une fois sur le serveur
je suppose qu'il l'est toujours)
Je l'ai placé dans le dossier www à coté du fichier index.php

Voici le code:

SetEnv PHP_VER 5_TEST
SetEnv REGISTER_GLOBALS 0

Options +FollowSymlinks

# Activation du module de reecriture d'URL :
RewriteEngine on
RewriteBase /

#--------------------------------------------------
# Pages Principales :
#--------------------------------------------------
RewriteRule ^accueil\.html$ ./?id=1 [L]
#RewriteRule ^accueil\.html$ ./index.php?id=1 [L]
A mon avis, ta compréhension du RewriteRule est inversée. En gros, c'est "si je tape dans la barre d'adresse le la condition de gauche, alors je redirige vers l'adresse de droite"

Du coup:
RewriteRule ^accueil\.html$ ./?id=1 [L]

Signifie: "Si je tape dans la barre d'adresse 'http://www.mrdfinance.be/accueil.html', alors j'appelle la page 'http://www.mrdfinance.be/?id=1'

Du coup, les liens de ton menu doivent par exemple être modifié, puisque le clic sur bouton "Accueil" a pour href http://www.mrdfinance.be/?id=1, alors qu'il devrait pointer vers http://www.mrdfinance.be/acceuil.html. Je sais pas trop si je suis clair?
Modifié par GroquikMLV (17 Oct 2013 - 16:40)
1 - essaies en enlevant la ligne RewriteBase /
2- utilises plutot la 2e forme : RewriteRule ^accueil\.html$ ./index.php?id=1 [L]
3 - essaies d'enlever le backslash : RewriteRule ^accueil.html$ ./index.php?id=1 [L]

à part çà je ne voie pas
Bonjour,

Merci pour vos réponses vous aviez tous les deux raisons. Je comprenais mal le principe,
et il me manquait le . devant mon chemin d'accès.

Voici le code qui fonctionne:

SetEnv PHP_VER 5_TEST
SetEnv REGISTER_GLOBALS 0


Options +FollowSymlinks

# Activation du module de reecriture d'URL :
RewriteEngine on
RewriteBase /


#--------------------------------------------------
# Pages Principales :
#--------------------------------------------------
RewriteRule ^Comptable-Mettet$ ./?id=1 [L]
RewriteRule ^Présentation-MRD-Finance$ ./?id=2 [L]
RewriteRule ^Comptabilité-Fiscalité-Conseils.Financiers$ ./?id=3 [L]
RewriteRule ^Comptable-Actualitée$ ./?id=4 [L]
RewriteRule ^Contacter-MRD.Finance$ ./?id=5 [L]
RewriteRule ^Espace-Client$ ./?id=6 [L]

et j'ai modifier le nom des liens en: Comptable-Mettet au lieu de ?id=1 dans mon code php.
J'ai simplement ajouté une colonne dans ma table contenu principal qui s'appelle urlContent ou j'ai remis le nouveau nom des liens.

J'ai encore une petite question Smiley biggrin , comme vous le voyez j'ai mis des accents mais cela ne passe pas, ils s'affichent correctement dans mon url et quand je fais clic droit sur ma page pour voir le code il n'y a pas de problème non plus pourtant quand je clique sur un lien ou l'url contient un accent ça plante. J'ai vu un forum à ce sujet sur ce site mais vieux de 5 ans.
Le problème maintenant est donc puis-je ou non mettre des accents (est-ce conseillé)?
J'ai un autre problème aussi c'est comment mettre Comptabilité à la place de ?id=3#1 ?
je n'arrive pas à trouver l'équivalent du #1
Concernant tes problèmes d'accents, c'est vrai qu'il n'est pas recommandé de mettre des accents dans les URL. Tu devrais regarder du coté de la fonction urlencode de PHP, cela devrais résoudre ton problème: http://php.net/manual/fr/function.urlencode.php

Par contre, je ne vois pas ce que tu veux dire par le #1? Tu veux dire que tu n'arrives pas à atteindre une ancre via le .htaccess?
Salut,

pour le # oui c'était ça mais j'ai résolu c'est moi qui m'embrouillais un peu^^

Sinon j'ai une autre difficulté; j'avais mis espace client pour ?id=6 seulement j'ai beaucoup de ''sous-lien" dans cette rubrique ou la partie admin et client peuvent s'afficher sur la même page.
Donc il y énormément de liens commençant par ?id=6 trop pour être gérer par l'url rewriting et le faire aurait plus une utilité esthétique qu'autre chose. Donc je voudrais laisser id=6 pour l'espace client seulement l'url garde le nom du dernier lien devant et ça fait tout ''foiré''.
si je clique sur contact avant de cliquer sur espace client l'url garde contact et ajoute simplement ?id=6 et la ça bug.
C'est pas super beau de faire comme ça, la moitié est "url-rewritée", et l'autre non... Enfin bon, comme tu veux.
Pour résoudre ton problème, tu peux mettre l'adresse complète que tu veux atteindre, je pense que ça devrait fonctionner:
<a href="http://www.mrdfinance.be/?id=6">Espace client</a>