8722 sujets

Développement web côté serveur, CMS

Bonjour à tous et à toutes,
Je viens vers vous car cela plusieurs jours que je plante sur la réécriture d’url de mon site internet, et la je ne vois pas comment je pourrais m’en sortir.
J’ai pourtant lu pas mal de sujet du forum et de la doc, mais je vous l’avoue je pêche un peu.

Un grand merci d’avance à ce qui pourrait me faire progressé dans l’obscurité de l’url rewrite.

Avant tout, voici les différentes structures des urls de mes pages

?page=111&metier=0035

voici le fichier htaccess



Options +FollowSymlinks
RewriteEngine On


RewriteRule ^metier-([0-9]+)-([0-9]+)\.html$  index.php ?page=$1&metier=$2  [L]



cela fonctionne et me donne bien :

metier-111-35.html

le première question que je me pose c’est :
dans ce cas je souhaiterais mettre en place une condition pour dire si c’est la page 111 alors on commence par metier-XX-XXX.html, mais si c’est page=44 alors on commence par actu-XX-XXX.html.

La deeuxième question que je me pose c’est qu’au lieu d’avoir

metier-111-35.html j’obtienne metier-assistante-de-direction.html si le metier 35 est renseigné dans ma base de données comme libelle assistante de direction ?

Mais la du coup, je ne vois absolument pas comment appréhender cette problèmatique.

Merci encore si quelqu’un peut m’apporter un peu de lumière.

Aurore
Question intéressante. Je ne vois pas de solution évidente. Ce à quoi je pense, mais faut voir ce qu'en pensent les autres, c'est de générer le fichier .htaccess grâce à un script PHP accédant à ta base de données. Si c'est un blog par exemple, il faudrait alors, à chaque ajout d'article, regénérer le .htaccess. Pourquoi pas, en tout cas c'est un défi amusant...
Une idée : tu enregistre directement dans ta base l'URL (unique) qui servira à la réécriture, ce qui fait que du coup tu n'aurais plus d'ID mais une URL dans... l'URL (oui, je sais...).
Du coup pour différencier une page d'une actu, il te faudrait un traitement préliminaire où tu irais chercher dans ta base l'ID en fonction de l'URL, et d'après cet ID choisir la page ou l'actu.

Par exemple, ton fichier .htaccess :

RewriteRule ^(metier|actu)-(.*)\.html$ /index.php?type=$1&url=$2 [L,QSA]