Rewriter mes pages

WRInaute impliqué
Bonjour à tous,

Voila je m'apprete a sortir mon site, mais avant de le mettre en ligne, je voudrais rewriter mes url.
Je pense que les questions ont déjà ete posées plein de fois, mais c'est un peu a chaque cas différent :wink:

1°/ Passer mes urls du type :
-www.example.fr/categorie.php?nom_cat=informatique&id_cat=12
à
-www.example.fr/informatique-12.html

2° Passer mes urls du type :
-www.example.fr/categorie.php?nom_cat=informatique&id_cat=12&page_cat=2
à
-www.example.fr/informatique-12,2.html

3°/ Passer mes urls du type :
-www.example.fr/fiche.php?id_site=54&nom_site=nom-du-site
à
-www.example.fr/fiche,54/nom-du-site.html

Et est ce que vous pouvez m'indiquer le type de lien que je doit mettre dans mon code php pour linker les lien rewriter svp ? (enfin si il faut modifier quelque chose... :/)

Merci beaucoup d'avance
 
WRInaute accro
tes liens doivent etre ceux rewrités :
-www.example.fr/informatique-12.html

ton htaccess fera la liaison avec
-www.example.fr/categorie.php?nom_cat=informatique&id_cat=12
 
WRInaute passionné
Avant toute question, il serait bien de lire le tutoriel url rewriting :wink:

Ensuite on pourra répondre à toutes les questions que tu voudra, si elles sont un peu plus précises :wink: :wink:
 
WRInaute passionné
Fight666 a dit:
Vui vui merci je l'es deja lu.
Ok, tu n'a pas tout compris alors ?

tes pages doivent contenir des liens vers les url du type -www.example.fr/informatique-12.html

ton htaccess fera la liaison avec
-www.example.fr/categorie.php?nom_cat=informatique&id_cat=12

par la règle

Code:
rewriterule ^categorie.php?nom_cat=(.+)&id_cat=([0-9]+)$ $1-$2.html [L]

:wink:
 
WRInaute passionné
Fight666 a dit:
D'accord, merci je re-regarde ca de plus pret je vous tient au courant :D

un conseil, si tu débutes en url rewriting, et pour bien comprendre ce qui se passe, commence par réécrire ce genre d'url simple :

Code:
^index.html$ /index.php

à partir de là, complexifie ;)
 
WRInaute impliqué
J'ai tester quelque chose (juste a l'ecrit car je ne peut pas tester en vrai pour le moment), pouvez vous me dire ce que vous en pensez svp ?

Code:
Options +FollowSymlinks
RewriteEngine on

RewriteRule ^([a-z]+)-([0-9]+)\.html$
/categorie.php?nom_cat=$1&id_cat=$2 [L]

RewriteRule ^([a-z]+)-([0-9]+),([0-9]+)\.html$
/categorie.php?nom_cat=$1&id_cat=$2&page_cat=$3 [L]

RewriteRule ^/fiche,([0-9]+)/([a-z]+)\.html$
fiche.php?id_site=$1&nom_site=$2 [L]

Ps : Je débute vraiment lol, c'est mon premier fichier .htacces
 
WRInaute passionné
Fight666 a dit:
J'ai tester quelque chose (juste a l'ecrit car je ne peut pas tester en vrai pour le moment), pouvez vous me dire ce que vous en pensez svp ?

Code:
Options +FollowSymlinks
RewriteEngine on

RewriteRule ^([a-z]+)-([0-9]+)\.html$
/categorie.php?nom_cat=$1&id_cat=$2 [L]

RewriteRule ^([a-z]+)-([0-9]+),([0-9]+)\.html$
/categorie.php?nom_cat=$1&id_cat=$2&page_cat=$3 [L]

RewriteRule ^/fiche,([0-9]+)/([a-z]+)\.html$
fiche.php?id_site=$1&nom_site=$2 [L]

Ps : Je débute vraiment lol, c'est mon premier fichier .htacces

ça m'a l'air pas mal, oublie pas le "/" devant /fiche.php?id_...

et au niveau des flags, mets [NC,L] (No Case) ce qui permet de ne pas prendre en compte la casse dans les URLs. Au cas où...
 
WRInaute impliqué
Oké merci, ajouté !
Et hmmm il ne faut pas ajouter quelque chose pour que :
Code:
RewriteRule ^/fiche,([0-9]+)/([a-z]+)\.html$
/fiche.php?id_site=$1&nom_site=$2 [NC,L]

Le nom du site soit mis comme cela dans l'url : nom-du-site
Et non pas : nom du site

?
 
WRInaute passionné
Fight666 a dit:
Oké merci, ajouté !
Et hmmm il ne faut pas ajouter quelque chose pour que :
Code:
RewriteRule ^/fiche,([0-9]+)/([a-z]+)\.html$
/fiche.php?id_site=$1&nom_site=$2 [NC,L]

Le nom du site soit mis comme cela dans l'url : nom-du-site
Et non pas : nom du site

?
fonction url_encode() (qui va mettre des +) ou str_replace(" ","-",$var_url) pour remplacer les espaces par des tirets (en PHP avant de balancer l'url dans la balise.)
 
WRInaute discret
RomsIW a dit:
ça m'a l'air pas mal, oublie pas le "/" devant /fiche.php?id_...

Pourquoi préfixer le nom d'un script page / ?

RomsIW a dit:
et au niveau des flags, mets [NC,L] (No Case) ce qui permet de ne pas prendre en compte la casse dans les URLs. Au cas où...

Perso je pense qu'il vaut mieux éviter d'utiliser trop d'options surtout quand ça n'est pas justifié. Sans compter que cette question de casse a été un cauchemard pour les Windowsiens qui sont passés sous Linux... Alors ne le ramenons pas sur le Web ! Non ? :p
 
WRInaute impliqué
Re-bonjour,

Voila je n'ouvre pas un autre post étant donné que c'est pour le même site ;)
J'ai des pages .php sur mon site et je voudrais qu'elle se "transforme" en .html
Dans mes menus je les appelles par <a href="./mapage.html"> mais dans mon .htaccess j'ai mis :

Code:
Options +FollowSymlinks
RewriteEngine on 
RewriteRule ^(.+)\.html$  $1.php [L]

Est ce que quelqu'un aurais une meilleurs méthode, voir faire toutes les pages une par une (j'en est pas enormement).

Ps : Je suis chez Sivit en mutualisé, je sais pas si ca a de l'importance mais bon je le dit ;)

Edit : Déjà le "Options +FollowSymlinks" fesait ch**r, la donc ma page d'accueil s'affiche, mais lorsque je vais sur un lien, il me met une erreur 404, "The requested URL /sites/e/example.fr/page.php was not found on this server." alors qu'elle y est quoi 0_o

J'ai essayer ca :

Code:
RewriteRule ^(.+)\.html$ http://www.example.fr/$1.php [L]
Le lien quand je clic sur mapage.html, mais dans la barre d'adresse de mon firefox ca me met l'adresse en .php
 
WRInaute accro
Fight666 a dit:
Code:
RewriteRule ^(.+)\.html$ http://www.example.fr/$1.php [L]
Le lien quand je clic sur mapage.html, mais dans la barre d'adresse de mon firefox ca me met l'adresse en .php

Si tu renseignes un nom de domaine, ça se transforme en redirection.

Fais ceci:

Code:
RewriteRule ^(.+)\.html$ $1.php [L]
 
WRInaute impliqué
Oui j'ai essayer de mettre ca :

Code:
RewriteRule ^(.+)\.html$ $1.php [L]

Mais comme je l'ai dit plus haut, quand je clic sur mapage.html, ca me met une erreur 404 :

Not Found
The requested URL /sites/e/example.fr/mapage.php was not found on this server.

Une idée ?
 
WRInaute impliqué
Personne ne voie ?

Alors aussi, je voudrais passer mes pages du type :

-http://www.example.fr/categorie.php?id_cat=42&page_cat=1
à
-http://www.example.fr/nom_de_la_cat-42,1.html

J'ai essayer ce code dans mon .htaccess :

Code:
RewriteRule ^(-[a-z]*)-([0-9]*),([0-9]*)\.html$
/categorie.php?id_cat=$1&page_cat=$2 [NC,L]

Mais ca ne marche pas, c'est sur, mais je vois pas comment dire que que je veut que ca soit le nom de la catégorie que je veut mettre a la place du "(-[a-z]*)"...

Une idée pour mes 2 problèmes ?
 
WRInaute impliqué
Please je suis vraiment coincé :cry:

Edit : J'ai trouvé pour le premier, suffisait de faire :

Code:
RewriteRule ^(.+)\.html$ /$1.php [L]

Mais j'ai je suis toujours coincé pour le reste :(

Re-edit : Problème résolut, merci les gars du chat ;)
C'était ça :

Code:
RewriteRule ^([a-z-]+)-([0-9]+),([0-9]+)\.html$ /categorie.php?id_cat=$2&page_cat=$3 [NC,L]
RewriteRule ^fiche,([0-9]+)/([a-z-]+)\.html$ /fiche.php?id_site=$1 [NC,L]
 
Discussions similaires
Haut