8795 sujets

Développement web côté serveur, CMS

Bonjour à tous,

J'ai créer un site où est exposé des oeuvres: tableaux, scultures...etc..

L'accès à ces oeuvres se fait de cette manière : detail.php?IdOeuvre=xx&type=xxx

Je cherche à mettre en place la réécriture d'URL pour atteindre les oeuvres de cette manière :

www.monsite.fr/Nom de l'artiste ou pays/titre de l'oeuvres/

Je suis capable d'écrire ces règles pour les oeuvres déja présentent, mais comment je peux faire pour les oeuvres qui vont êtres ajouter dans le futur?? je vais pas écrire une nouvelle règle dès qu'un nouvelle artiste est ajouté??

Y'a un truc que je pige pas je crois...
Modifié par bentsen (25 Aug 2009 - 10:05)
Salut,

je suppose que pour l'instant tu as écrit chaque redirection en dur ?

En tous les cas l'id de l'œuvre devrait suffire non ? Ce qui donnerait quelque chose comme :
RewriteEngine on
RewriteRule ^id-([0-9]+)\.html$  detail.php?id=$1 [L]
url demandée : www.monsite.fr/id-333.html

Sinon avec nom/titre :
RewriteEngine on
RewriteRule ^oeuvre/([a-z]+)/([a-z]+)\.html$  detail.php?nom=$1&titre=$2  [L]
url demandée : www.monsite.fr/oeuvre/toto/tutu.html (attention dans ce cas aux répertoires virtuels).
Ok, je crois avoir pigé un truc qui n'était pas trop clair depuis le début. Il faut que je change mes liens. pour l'instant ils sont tous : detail.php?IdOeuvres&type=xxx il faudrait que je les changes pour detail.php?nom=xxx&titre=xxx.

ne risque-t-il pas d'y avoir des problèmes avec les espaces, caractère spéciaux, accent que l'on peut trouver dans ce genre de variable.

J'aurais bien aimer faire un truc du genre :

monsite.fr/Nom de l'artiste ou pays/titre de l'oeuvre/ qui renvoi vers detail.php&IdOeuvres=xx&tab=xxx.

Le nom de l'artiste me permet de retrouver le type avec une requete SQL et idem pour le titre de l'oeuvre qui me permet de récupérer son Id.

Le problème est qu'il faudrait que mon .htaccess soit mis à jour dès qu'une nouvelle oeuvre est ajouté.


Je vais essayé de voir ça de plus prêt et de relire quelque doc sur la réécriture d'URL.

En faite je fait ça pour optimiser le référencement de ce site, s'est pour cela qu'il me faudrai le nom de l'artiste et le nom de l'oeuvre.

Je vais me torturer la tête Smiley biggol

Merci pour ta réponse.
Salut Smiley smile

Plus simple.

Tu créé tes liens ainsi :

www.monsite.com/PaTriCk/LalLiLISa

Dans tes régles de réécriture, tu récupère le contenu des deux variable.

Donc pour :

RewriteEngine on 
RewriteRule ^([a-z0-9]+)/([a-z0-9]+)$  detail.php?var_1=$1&var_2=$2  [L]


$var_1 = "PaTriCk";
$var_2 = "LalLiLISa";


Tu as donc les deux variables.

Tu n'as plus qu'à comparer le la $var_1 avec le champs qui va bien de ta base (LIKE %$var_1% etc ...)

Et tu ressors le titre etc ...

Ou soit, tu peux faire une réécriture d'url un poil plus complexe, qui contiendra l'id de chaque champs

RewriteEngine on 
RewriteRule ^([0-9]+)/([0-9]+)/(.*)$  detail.php?var_3=$1&var_4=$2  [L]


Ainsi dans $var_3 et 4 tu as les id qu'il te faut pour récupérer et afficher la page, le reste de l'url, on s'en fous.

Cet url serais de type : www.monsite.com/158/23/ce-que-tu-veux-comme-titre
Salut,

Merci pour l'info, mes url seron donc :

oeuvres/theme/
detail/nom artiste/titre de l'oeuvre/id/sorte/

L'important pour moi était de ne pas avoir de detail.php?id=xxxx
Si je dis pas de bétise google ignore ce type d'url et ne retient que le detail.php

Je résolve mon sujet. Smiley biggrin
Re Smiley cligne

Pour google, c'était plus ou moins vrai avant, c'est complètement faux maintenant.

Le but de faire de l'url rewriting, est de simplifié une url, masqué le langage utilisé.

Pour ma part, je l'utilise pour ses dossier virtuels