Url rewriting ou ma femme me quitte pour un programmeur php !

Signaler
Messages postés
54
Date d'inscription
vendredi 1 février 2002
Statut
Membre
Dernière intervention
8 février 2007
-
Messages postés
54
Date d'inscription
vendredi 1 février 2002
Statut
Membre
Dernière intervention
8 février 2007
-
mon site à plus de 30000 références


logique de mon site (classique quoi ! ):
page coté gauche : dans un datagrid j'affiche mes familles d'article
quand je clique sur une des familles,
la page centrale m'affiche mes sous familles dans un autre datagrid

page centrale : quand je clique sur une sous famille m'affiche mes articles par marque par exemple



mon site étant déja programmé et voulant passer à l'url rewriting, j'ai cru comprendre que je n'avais rien à changer
NI dans mes pages aspx NI dans mon code aspx.vb


mais alors si j'ai ....
-----------------des images dans mon datagrid
http://monsite/produit.aspx?Familleidprod=61&SoufammilleId=7&CategoryID=21&MarqueId=1&ReferenceSage=0
monsite.com\electromenager\cuisine\petitsrobots\hachoirs\sebExtrHash.aspx
--------------Familleidprod=61&
-----------------------------SoufammilleId=7&
-------------------------------------CategoryID=21&
--------------------------------------------------MarqueId=1&ReferenceSage=0


Pour comprendre j'ai besoin de concret
quel type de regle de réécriture me permettra d'appeler aussi bien un steak au poivre surgelé qu'un boulon de 12 pour vélo ?


merci de bien vouloir m'aider déja à comprendre ce que je dois faire

Léo dit dedZep
----------------------
pour acheter sur le Net il faut une carte bleue
Léo Tseu

2 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour,


Dans ton cas, il faut que tu transcrives electromenager en familleIDprod=61 et ca le 61 vient directement de ta base de données donc l'url rewriting comme ceci ne pourras t'aller, il faudra donc que tu codes un httphandler ... qui analyse l'url fasse de requetes pour faire correctement ce que tu veux ...

Regarde cet article : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/urlrewriting.asp qui t'expliquera comment fonctionne l'url rewriting et ausi les handler



<HR>
Cyril - MVS - MCP ASP
Messages postés
54
Date d'inscription
vendredi 1 février 2002
Statut
Membre
Dernière intervention
8 février 2007

merci Cyril pour ton interet à mon probleme :)


neanmoins dans la page dont tu me donnes le lien "ils" font bien
Posts for November 7, 2003
donc une sorte de "tri" sur an/mois/jour pas si loin de produit/sousproduit/marque
ou bien Figure 6. All posts for November 2003
pas si loin de produits/et tous les sous produits

et quand je regarde
<!-- Rules for Blog Content Displayer -->
<RewriterRule>
<LookFor>~/(\d{4})/(\d{2})/(\d{2})\.aspx</LookFor>
<SendTo>~/ShowBlogContent.aspx?year=$1&amp;month=$2&amp;day=$3</SendTo>
</RewriterRule>

les $1 , $2, $3 sont -ils si eloignés de mon
produit.aspx?Familleidprod= $1&SoufammilleId= $2&CategoryID= $3&MarqueId= $4&ReferenceSage= $5 ?????

je me demande si n'ayant pas les connaissances suffisantes, je ne pose pas correctement mes questions.

j'ai essayé l'url rewriting avec helicon isapi_rewrite. cela fonctionne mais cela oblige à tout réécrire le code (du moins en php)
je crois qu'avec urlrewriter.dll le code ne change pas (il faut juste modifier le web.config)
voici un echange sur les news microsoft.fr

> merci pour ta disponibilité
>
> en fait ce que je ne comprends pas c'est la logique
>
> dois-je dans mes pages asp.net mettre
>
> NavigateURL='<%# "produit.aspx?idprod="> &amp;DataBinder.eval(Container.DataItem,"id_produit") &amp; "&amp;Id=" &amp;
> Request("Id") &amp; "&amp;Cat=" &amp; Request("Cat") &amp; "&amp;ISelect="&amp; request("ISelect") &amp; "&amp;idcat=" &amp; request("idcat")
>
> et l'url rewriting transforme ceci à l'affichage pour le client sous la forme monsite/mamarque/monproduit.html
>
> ou est que dans ma page je dois mettre un lien du genre (et là cela me semble impensable !)
> NavigateURL='<%# "monsite/mamarque/monproduit.html et l'url rewriting va pointer la bonne adresse tout en affichant la fausse
> dans le butineur du client
>
> tu veux une aspirine la ?
> en espérant ne pas t'user par mes questions.

---------reponse d'un MS
Non c'est normalement le contraire.

En général, le site utilise une URL "technique" avec des paramètres plus ou moins clair pour un utilisateur. Donc on met une place une règle qui au lieu
de /categorie.aspx?id=213992&lang=fr etc... va diriger l'URL "fictive" /fr/livres.aspx vers /categorie.aspx?id=213992&lang=fr

Donc l'utilisateur peut éventuellement taper cette adresse "fictive" /fr/livres.aspx plus simple à mémoriser. C'est la page
/categorie.aspx?id=213992&lang=fr qui sera appelée.

Tu peux *éventuellement* l'utiliser sur ton site par commodité (par exemple si tu est sur la description d'un bouquin utiliser /fr/livres.aspx sera plus
facile pour le concepteur du site). Mais /categorie.aspx?id=213992&lang=fr
fonctionne tout aussi parfaitement puisque c'est de toute façon la "vraie" page. Donc à toi de voir. C'est juste une espèce d'"alias".

Dans ton cas, le fait que cela te surprenne me laisse penser que tu n'a pas mis ces règles en place dans ton fichier. Mettre des règles en place pour
chaque produit est à mon avis inutile. Encore une fois on en revient à ton but de départ. En général c'est de fournir quelques URLs que les
utilisateurs pourrait facilement mémoriser du style :
fr/livres.aspx
fr/disques.aspx
et une catégorie moins sollicités pourrait ne pas avoir d'alias...

---fin du dial sur news

Bon ! Cyril là je patauge grave !
cela fait plus de 15 jours que je suis là dessus et mon projet n'avance pas.... et pourtant je suis sur que asp.net vb doit me permettre de le faire "facilement".
j'ai lu ton article que je ne comprend pas des masses vu que je n'ai pas une vue d'ensemble suffisament forte pour comprendre le tout.
j'ai essayé l'exemple donné qui marche mais avec un seul $1 (moi j'en ai 5) et sans explication sur la mise en place d'une regle d'expression régulière permettant de faire soit :
monsite/produit/sousproduit/marque/modele.html
soit plus simple
monsite/oreillette_blue_tooth_pour_nokio_12345.aspx (sans faux répertoires)

merci cyril pour la lecture.

Léo dit dedZep
----------------------
pour acheter sur le Net il faut une carte bleue
Léo Tseu