Bonsoir à tous Smiley cligne


J'ai commencé un nouveau site utilisant des pseudo-frames. Mes pages sont donc accessible via l'URL "index.php?page=machin".
J'aimerais employer l'URL Rewriting et ai donc lu quelques tutoriels à ce sujet :

* http://www.webmaster-hub.com/publication/article5.html
* http://www.webrankinfo.com/analyses/autres/url-rewriting-debutants.php
* http://www.webmaster-experience.net/article-article-2.html
* http://web.developpez.com/tutoriel/apache/urlrewriting/

Le problème étant que sur ces tutoriels, les noms des pages sont produis par numéros (donc "index.php?categorie=xx&page=xx") alors que les miennes sont des suites alphabétiques.

J'ai donc essayé d'adapter mon htaccess mais cela ne fonctionne pas. Voici le contenu de mon htaccess.

 Options FollowSymLinks
RewriteEngine on
RewriteRule ^([a-z])\.html$  index.php?page=$1  [L]


Lorsque j'essaie donc d'accéder à "/contact.html", qui est donc en fait "/index.php?page=contact", je mange une 404... =/

Ou ai-je pu faire une erreur ? Smiley bawling

<edit J'ai mis le code dans des balises...code. Smiley lol />
<edit² J'ai oublié de préciser que je souhaite employer le module mod_rewrite Smiley cligne />
<edit³ Titre passé en [Résolu] />
Modifié par SolykZ (03 Aug 2007 - 10:08)
Salut Smiley cligne ,

si cela peut t'aider, voilà le code que j'utilise sur un de mes sites :
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^page-([a-z]+)\.(htm|html|php)$ index.php?id_page=$1 [L]
et comme exemple de lien : page-contact.php

Il me semble que selon les hébergeurs, il faut parfois mettre :
RewriteRule ^page-([a-z]+)\.(htm|html|php)$ [b]/[/b]index.php?id_page=$1 [L]

et pour d'autres, rajouter :
RewriteBase /

A+ Smiley smile

*Edit: par curiosité je viens de tester ça sur OVH :
Options +FollowSymlinks
RewriteEngine on
RewriteRule  ^([a-z]+).\html$ index.php?page=$1 [L]
et ça fonctionne avec contact.html
Modifié par Heyoan (03 Aug 2007 - 04:34)
Bien le bonjour ! Smiley smile

Merci à toi Heyoan pour ta réponse, mais je pense avoir cerné l'ennui... Le temps que l'hébergement de ce site soit ouvert, je l'ai envoyé sur un FTP dont je me sers pour mes tests divers. J'ai donc créé un dossier au nom du site, dans lequel j'ai placé tous les fichiers, y compris le htaccess.

Mais si je ne m'abuse, il faut employer des chemins absolus, et donc selon moi le htaccess partant de la racine du serveur, il ne trouvait pas le fichier index.php et m'affichait donc une jolie erreur 404.

Voici donc le code définitif et fonctionnel se trouvant à la racine du serveur :


Options +FollowSymlinks
RewriteEngine on
RewriteRule ^pages/([a-z]+)\.html$ /index.php?page=$1 [L]


La discussion peut donc passer en résolu. Merci pour ton aide. Smiley cligne
Bonjour personnelement je n'utilise pas de chemin absolut, je suis sur un serveur apache que j'ai installer.

Et le type de mes liens sont sous cette forme.


RewriteRule ^([a-z]+)-([a-z]+).htm  index.php?page=$1&ssmenu=$2 [L]

Et cela marche tres bien, car j'ai un .htacces dans tout mes dossiers qui ont besoin d'un changement d'url. tel que pour l'administration( meme si cela ne sert pas à grand chose Smiley langue )

Donc verifie que ton herbergeur et sur un apache et non pas un windows car si c'est le cas il y a une syntaxe a changer. car j'ai un serveur ( que j'ai payer Smiley langue ) et il est sous IIS donc pas .htacces mais un autre fichier dont je me souvient plus du nom oO
Je pense que comme disait Heyoan, il manquait un slash dans la seconde partie de la syntaxe de ré-écriture. Mon hébergeur (123.fr) utilise Apache sous Linux, et n'a pas vraiment désactivé l'un ou l'autre module comme le font d'autres par souci de sécurité. C'est un plus pour le connaisseur, mais pour celui qui développe à l'aveuglette ça peut vite finir en passoire, malheureusement.

Bref, j'ai réussi à faire fonctionner tout ça, alors ça roule. Smiley cligne

Merci pour vos interventions respectives. Smiley smile