URL rewriting Nombre en Texte

Nouveau WRInaute
Bonjour,

J'ai de nombreuses pages avec 2 variables que je souhaiterais "URL rewrité", seulement j'aimerais savoir si c'est possible de transformer un nombre en un mot ? je m'explique

une de mes pages actuelement :

videos.php?genre=10&page=2

j'aimerais quelle devienne :

2-videos-GenreQuiCorrespondA10.php

Voila, j'aimerais savoir si c'est possible ? et aussi comment faire ? svp, car je n'est pas trouvé d'info assez precises sur le net :/

j'ai cru comprendre qu'on pouvait faire quelques chose comme (genre1|genre2|genre3) mais je ne sais pas si on peut le faire correpondre a 1 nombre

Merci d'avance :)
 
WRInaute discret
l'url rewriting permet de rechercher une expression reguliére et de la remplacer par autre chose.
Cette autre chose peut être une composition entre des chaines de caractéres constantes ou un ou plusieurs des resultats entre parenthéses de l'expression régulière.

En gros : rien ne se perd, rien ne se créé, tout se transforme
En gros 2 : pas possible :)
 
WRInaute occasionnel
Bien sur que c'est possible.

Tu stockes dans une bdd les genres, et tu leur attribut un numero(un id par ex.).
Il te suffit juste ensuite de les traiter dans la page en php, pour recuperer via une requete SQL le numero(l'id) correspondant au genre contenu dans l'url.
 
Nouveau WRInaute
Merci pour vos reponses :)

Oui Maxib, je vais faire un truc du genre, avec une fonction If et Switch, pour chaque mot de l'url, jattriburais le bon nombre correspondant,

Merci a vous :)
 
WRInaute passionné
Si c'est possible mais pas avec le Htaccess.
Il faut faire cela en php.

tu as tes pages du style
videos.php?genre=10&page=2

tu va chercher le nom du genre 10 dans la base mysql
tu remplace tes liens par
2-10-videos-GenreQuiCorrespondA10.php
ensuite grace au htaccess

Options FollowSymLinks
RewriteEngine on
RewriteRule ^([0-9]*)-([0-9]*)-videos-(.*).html$ videos.php?genre=$2&page=$1 [L]
 
Nouveau WRInaute
rottman a dit:
Salut tu peux tout simplement faire :

videos-genre-10-2.html ?!

Je prefere que genre corresponde a 1 mot, avec defois 65 pages, sa fera comme 65 fois ce mot pour les moteurs de recherches


Borower, a quoi sert "Options FollowSymLinks" stp ? il est important ?
 
WRInaute passionné
C'est possible tant que tu as aussi le numéro dans l'url. Après, il suffit de récupérer le numéro et d'ignorer le texte.

François
 
WRInaute passionné
As tu compris l'url rewriting ??
Je ne suis pas sûr.

Tes pages sont de la forme
videos.php?genre=10&page=2

tu voudrais avoir quelque chose de plus propre, du genre
videos-2-10-GenreQuiCorrespondA10 (l'extension est même inutile, puisque de toute façon la page n'existe pas)

Dans ton .htaccess tu met
Code:
Rewriterule ^videos-([0-9]+)-([0-9]+).*$ videos.php?genre=$2&page=$1

[0-9]+ veut dire : toute suite de chiffre
() veut dire : je garde en mémoire
$1 ou $2 rappelle les mémoires

Quand tu appelle la page videos-2-10-GenreQuiCorrespondA10, le serveur te renverra la page videos.php?genre=10&page=2 de façon totalement transparente.

Pour que la page videos-2-10-GenreQuiCorrespondA10 soit appelée, il faut que tu remplace MANUELLEMENT tous tes liens dans tes pages pour faire apparaitre les nouvelles adresses.

pour finir, tu vois qu'il n'est pas possible d'omettre le numéro du genre dans ta nouvelle page, sinon tu ne pourrait pas le retrouver (ou en tous cas pas de manière simple).

Capito ?

[edit] Avec un train de retard
 
Nouveau WRInaute
Si au debut de ma page, je met ça :

Code:
switch ($GET_['genre']) {

case GenreQuiCorrespondA1:
$genre = 1
break;

case GenreQuiCorrespondA2:
$genre = 2
break;

case GenreQuiCorrespondA3:
$genre = 4
break;
}

Et bien je pourrais mettre dans l'URL GenreQuiCorrespondA1 sans mettre 1 et sa marchera non ?

apres pour mes pages, je peux faire un truc comme :

Code:
<a href="<? echo $page ?>-videos-<? echo $GET_['genre'] ?>.php">Page <? echo $page ?></a>

// ca donnera  :  1-videos-NomDuGenre.php
// pour la page 1 du genre NomDuGenre

avec ca, je n'ai pas besoin de preciser le numero du genre, et les liens vont directement vers les page avec l'URL rewriting

C'est possible non ?
 
Nouveau WRInaute
Je viens de faire ce que jai exposé plus haut, j'ai un probleme,

mon htaccess :

RewriteEngine on
Rewriterule ^([0-9]+)-videos-([a-z]+)\.html$ videos.php?genre=$2&page=$1 [L]

quand je vais sur 1-videos-nomdegenre.html

Un message d'erreur 404 s'affiche :
The requested URL /home/nomdusite/www/videos/videos.php was not found on this server.
(videos.php est pourtant a cet emplacement)
En tout cas l'url rewritng a laire de marcher a pe pres puisque sa tente de me rediriger vers video.php

Mais comment ca se fait quil ne trouve pas la page qui existe pourtant ? je suis heberger par OVH, estce que sa a un rapport ? il faut que je mette un chemin absolu quelque part ?

Merci
 
WRInaute passionné
RewriteEngine on
Rewriterule ^([0-9]+)-videos-([a-z]+)\.html$ /videos.php?genre=$2&page=$1 [L] (chez ovh)
 
Discussions similaires
Haut