Accueil > Forum > > > > url rewriting SOS lo peu compris !
url rewriting SOS lo peu compris !
mercredi 16 novembre 2005 à 12:52:25 |
url rewriting SOS lo peu compris !

dedzep
|
mon site à plus de 30000 références j'utilise la dll URLRewriter je programme en aps.net VB je viens donc de comprendre que dans mon code rien ne bouge.
Ze bleme !
dans un datagrid j'affiche mes famille d'article quand je clique sur une des familles, la page centrale m'affiche mes sous familles dans un autre datagrid quand je clique sur une sous famille ma page centrale m'affiche mes articles (par marque par exemple)
donc pour résumer j'ai pas mal...
-----------------d'images dans mon datagrid
<asp:Image id=Image1 runat="server" ImageUrl='<%# "photos\" & DataBinder.Eval(Container.DataItem,"vignette")& "." & DataBinder.Eval(Container.DataItem,"extention") %>' ImageAlign="Top"> </asp:Image>
------------------de liens aussi dans mon datagrid <asp:TemplateColumn HeaderText="<b>Nom du produit</b>"> <HeaderStyle Width="20%"></HeaderStyle> <ItemStyle VerticalAlign="Top"></ItemStyle> <ItemTemplate> <asp:HyperLink id=HyperLink1 CssClass="textecourant" runat="server" Text='<%# DataBinder.eval(Container.DataItem,"libProduit")&" pour " & Session("savChoixOldPage2")%>' NavigateURL='<%# "produit.aspx?idprod=" & DataBinder.eval(Container.DataItem,"id_produit") & "&Id=" & Request("Id") & "&Cat=" & Request("Cat") & "&ISelect=" & request("ISelect") & "&idcat=" & request("idcat") %>'> </asp:HyperLink><BR> </ItemTemplate> </asp:TemplateColumn>
comment faire concretement ! si j'ai bien tout compris je ne change rien au niveau de ma page aspx (et de mes datagrid donc)
mais alors au niveau du web.config ? Je ne peux me tourner que vers des expressions régulières pour avoir (comme dans un supermarché par exemple) monsite.com\viande\boeuf\detail\cotepremiere.aspx monsite.com\electromenager\cuisine\petitsrobots\hachoirs\seb.aspx monsite.com\electromenager\cuisine\petitsrobots\hachoirs\tous.aspx
les exemples du style <LookFor>~/Products/Beverages\.aspx</LookFor> <SendTo>~/ListProductsByCategory.aspx?CategoryID=1</SendTo> </RewriterRule> <RewriterRule> <LookFor>~/Products/Condiments\.aspx</LookFor> <SendTo>~/ListProductsByCategory.aspx?CategoryID=2</SendTo> </RewriterRule> <RewriterRule> <LookFor>~/Products/Confections\.aspx</LookFor> <SendTo>~/ListProductsByCategory.aspx?CategoryID=3</SendTo>
ne m'apportent pas de réponses ! ils sont trop simplistes pour être transposés dans mon cas. Pour comprendre j'ai besoin de concret
voici un exemple de mon web.config avec ce que je voudrais obtenir
<configSections> <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" /> </configSections> <RewriterConfig> <Rules> <RewriterRule> <LookFor>~/planetehyper/Produits/luminaire/Philips_accu-5\.aspx</LookFor> <SendTo>~/planetehyper/produit.aspx?idprod=61&Id=7&Cat=21&ISelect=1&idcat=0</SendTo> </RewriterRule> <RewriterRule> <LookFor>~/planetehyper/Produits/sanitaire/papier_toilette_Générique_tripleFeuille\.aspx</LookFor> <SendTo>~/planetehyper/produit.aspx?idprod=59&Id=7&Cat=21&ISelect=1&idcat=0</SendTo> </RewriterRule> </Rules> </RewriterConfig>
merci de bien vouloir m'aider
Léo dit dedZep ---------------------- pour acheter sur le Net il faut une carte bleue Léo Tseu
|
|
mardi 19 décembre 2006 à 16:21:44 |
Re : url rewriting SOS lo peu compris !

quineman
|
Tu peux essayer ça (dans ma solution, je met quand meme l'identifiant, mais j'enléve les caractéres spéciaux et je met les mots clefs) <RewriterRule> <LookFor>~/Itineraires/(.*)_(.*).html</LookFor> <SendTo>~/Itineraires/voyage.aspx?circ=$1</SendTo> </RewriterRule>
Je fait une fonction pour créer mon url de façon dynamique (avec les mots clefs) :
Public Function UrlCompose(ByVal id As String, Optional ByVal pays As String = "", Optional ByVal libelle As String = "") As String
Dim myString As New System.Text.StringBuilder Dim strTraitement As String
myString.Append(id) myString.Append("_") myString.Append(pays) myString.Append("-") myString.Append(libelle)
strTraitement = myString.ToString strTraitement = LCase(Modifcarracters(strTraitement))
myString.Replace(myString.ToString, strTraitement)
myString.Replace(" ", "-") myString.Replace("-le-", "-") myString.Replace("-la-", "-") myString.Replace("-les-", "-") myString.Replace("-du-", "-") myString.Replace("-de-", "-") myString.Replace("-des-", "-") myString.Replace("-a-", "-") myString.Replace("-au-", "-") myString.Replace("---", "-") myString.Replace("--", "-") myString.Append(".html")
Return myString.ToString
End Function
DONC : ~/Itineraires/909_chine-trois-joyaux.html renvoi sur : ~/Itineraires/voyage.aspx?Circ=909
EXPLICATION : En fait je dit dans ma régle que tout ce qui est avant "_" est mon identifiant et je le récupére ensuite pour composer mon URL.
C'est clair que dans ton cas, il va falloir aller un peu plus loin avec les expressions régulière mais c'est tout à fait possible je pense.
Bon courage.
|
|
mardi 19 décembre 2006 à 16:32:23 |
Re : url rewriting SOS lo peu compris !

dedzep
|
Merci, mille fois merci ! ton truc est simplement et meveilleusement documenté ! je travaille maintenant avec .net 2.0 et ThunderMain.URLRewriter.dll et des regles simples dans mon web.config genre </rule> <rule> <url>home-pays_([0-9]*)_boutique_([0-9]*).html</url> <rewrite>Default2.aspx?id_langue=$1?id_boutique=$2</rewrite> </rule> </urlrewrites>
ceci dit je garde dans un coin ton idée car elle est facile a mettre en oeuvre merci encore
Léo dit dedZep ---------------------- pour acheter sur le Net il faut une carte bleue Léo Tseu
|
|
mardi 19 décembre 2006 à 18:23:09 |
Re : url rewriting SOS lo peu compris !

quineman
|
Réponse acceptée !
Mais de rien ! Et voici cette fonction (que j'ai trouvé et un peu améliorer pour le référencement) et qui marche très bien pour dégager tous les caractéres spéciaux... Bon courage !
Public Shared Function Modifcarracters(ByVal UnMot As String) As String UnMot = Replace(UnMot, Chr(138), "S") UnMot = Replace(UnMot, Chr(142), "Z")
UnMot = Replace(UnMot, Chr(141), "-") UnMot = Replace(UnMot, Chr(142), "-") UnMot = Replace(UnMot, Chr(143), "-") UnMot = Replace(UnMot, Chr(144), "-") UnMot = Replace(UnMot, Chr(58), "-") ': UnMot = Replace(UnMot, Chr(38), "-") '&
UnMot = Replace(UnMot, Chr(158), "z") UnMot = Replace(UnMot, Chr(159), "Y") UnMot = Replace(UnMot, Chr(192), "A") UnMot = Replace(UnMot, Chr(193), "A") UnMot = Replace(UnMot, Chr(194), "A") UnMot = Replace(UnMot, Chr(195), "A") UnMot = Replace(UnMot, Chr(196), "A") UnMot = Replace(UnMot, Chr(197), "A") UnMot = Replace(UnMot, Chr(200), "E") UnMot = Replace(UnMot, Chr(201), "E") UnMot = Replace(UnMot, Chr(202), "E") UnMot = Replace(UnMot, Chr(203), "E") UnMot = Replace(UnMot, Chr(204), "I") UnMot = Replace(UnMot, Chr(205), "I") UnMot = Replace(UnMot, Chr(206), "I") UnMot = Replace(UnMot, Chr(207), "I") UnMot = Replace(UnMot, Chr(208), "D") UnMot = Replace(UnMot, Chr(209), "N") UnMot = Replace(UnMot, Chr(210), "O") UnMot = Replace(UnMot, Chr(211), "O") UnMot = Replace(UnMot, Chr(212), "O") UnMot = Replace(UnMot, Chr(213), "O") UnMot = Replace(UnMot, Chr(214), "O") UnMot = Replace(UnMot, Chr(217), "U") UnMot = Replace(UnMot, Chr(218), "U") UnMot = Replace(UnMot, Chr(219), "U") UnMot = Replace(UnMot, Chr(220), "U") UnMot = Replace(UnMot, Chr(221), "Z") UnMot = Replace(UnMot, Chr(224), "a") UnMot = Replace(UnMot, Chr(225), "a") UnMot = Replace(UnMot, Chr(226), "a") UnMot = Replace(UnMot, Chr(227), "a") UnMot = Replace(UnMot, Chr(228), "a") UnMot = Replace(UnMot, Chr(229), "a") UnMot = Replace(UnMot, Chr(231), "c") UnMot = Replace(UnMot, Chr(232), "e") UnMot = Replace(UnMot, Chr(233), "e") UnMot = Replace(UnMot, Chr(234), "e") UnMot = Replace(UnMot, Chr(235), "e") UnMot = Replace(UnMot, Chr(236), "i") UnMot = Replace(UnMot, Chr(237), "i") UnMot = Replace(UnMot, Chr(238), "i") UnMot = Replace(UnMot, Chr(239), "i") UnMot = Replace(UnMot, Chr(241), "n") UnMot = Replace(UnMot, Chr(242), "o") UnMot = Replace(UnMot, Chr(243), "o") UnMot = Replace(UnMot, Chr(244), "o") UnMot = Replace(UnMot, Chr(245), "o") UnMot = Replace(UnMot, Chr(246), "o") UnMot = Replace(UnMot, Chr(249), "u") UnMot = Replace(UnMot, Chr(250), "u") UnMot = Replace(UnMot, Chr(251), "u") UnMot = Replace(UnMot, Chr(252), "u") UnMot = Replace(UnMot, Chr(253), "y") UnMot = Replace(UnMot, Chr(255), "y") Return CStr(UnMot) End Function
|
|
lundi 8 janvier 2007 à 18:32:07 |
Re : url rewriting SOS lo peu compris !

yous
|
Salut quineman,
Ton exemple m'intéresse mais je ne comprends pas bien. Tu crées la fonction UrlCompose pour retravailler ton Url mais je ne comprends pas comment tu appelles cette fonction mais surtout comment tu affectes le résultats retourné à l'URL de ta page pour la modifier...en apparence.
Pourrais tu me donner deux trois explications STP ?
|
|
lundi 8 janvier 2007 à 23:31:42 |
Re : url rewriting SOS lo peu compris !

quineman
|
Hello, En fait, c'est pratique comme solution mais il n'empêche que pour la mettre en place, il faudras que tu l'utilise à chaque fois que tu as un lien rewrité... Dès qu'un lien apparait dans une page, tu prends les éléments de la régle et tu les compose dans la fonction (donc ma fonction est simplement un exemple , elle dépent étroitement de ta règle). Il est bien évident que cette solution est utile dans certains cas seulement : quand c'est une fiche produit comme dedzep, ca permet de ne pas avoir un web config de 1 Mo... Et surtout ça se met à jour automatiquement. Pour faire un truc super carré, il faux réflechir ensuite à faire une redirection 301 sur l'ancienne URL, mais ça c'est une autre histoire. J'y réflechis... Bon courage !
|
|
mercredi 10 janvier 2007 à 09:46:06 |
Re : url rewriting SOS lo peu compris !

quineman
|
A mettre sur la page produit : Si nous n'avons pas fait de redirection (c'est à dire que la page n'est pas en .html), alors on redirige en 301. Pour voir l'url brut, on utilise la méthode System.Web.HttpContext.Current.Request.RawUrl
Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LoadComplete
'- '- Gestion de la redirection de type 301 '- Si la page produit.aspx est appelée, alors on redirige en 301 '- lblPays et lblLibelle servent à créer de façon dynamique l'URL '-
If Not InStr(System.Web.HttpContext.Current.Request.RawUrl, ".htm") > 1 Then
Dim maRedirection As String Dim MyUrlRewrite As New RewriteURL
maRedirection = MyUrlRewrite.UrlCompose(Request.QueryString("circ"), lblPays.Text, lblLibelle.Text) Response.Status = "301 moved permanently" Response.AddHeader("location", maRedirection) Response.End()
End If
End Sub
|
|
samedi 8 septembre 2007 à 19:02:21 |
Re : url rewriting SOS lo peu compris !

vladam
|
Je viens d'intégrer ce rewriting sur mon site et en local, tout est opérationnel. MAIS :( .... Une fois sure mon site Internet, lorsque je clique sur un lien , j'ai une erreur 404 :( HELP ... pour info, J'ai un serveur Windows 2003 Server Standard
Je compte sur vous
vladam (pour vous servir :) )
|
|
dimanche 9 septembre 2007 à 10:40:14 |
Re : url rewriting SOS lo peu compris !

quineman
|
As tu excactement le même web.config ? avec la partie handler... Et les régles à la virgule près... Je ne me souviens plus s'il y a une dll mais vérifie aussi ton dossier bin.
|
|
dimanche 9 septembre 2007 à 12:31:00 |
Re : url rewriting SOS lo peu compris !

vladam
|
c'est effectivement le même, j'ai envoyé le site en ligne avec l'assistant de déploiement du studio 2005. Je viens de controler que la dll est bien dans le /bin aussi. Voila mon web.config en ligne : <? xmlversion="1.0"?>< configuration>< configSections>< sectionname="dataConfiguration"type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data" />< sectionGroupname="system.web">< sectionname="urlrewrites"type="ThunderMain.URLRewriter.Rewriter, ThunderMain.URLRewriter, Version=1.0.783.30976, Culture=neutral, PublicKeyToken=7a95f6f4820c8dc3"/></ sectionGroup></ configSections>< appSettings><addkey="NbCardByPage"value="30"/></ appSettings>< connectionStrings>< addname="MargoDatabase"connectionString="Data Source=localhost;Initial Catalog=Margo_Database;Persist Security Info=True;User ID=XXXX;Password=XXXX"providerName="System.Data.SqlClient" /></ connectionStrings>< dataConfigurationdefaultDatabase="MargoDatabase"/>< system.web>< urlrewrites>< rule>< url>page_theme/(.*)/([0-9]*)/Pge/([0-9]*)</url>< rewrite>themes.aspx?rel=$2&Pge=$3</rewrite></ rule>< rule>< url>theme/(.*)/([0-9]*)</url>< rewrite>themes.aspx?rel=$2</rewrite></ rule>< rule>< url>ecards/(.*)/ecard/([0-9]*)</url>< rewrite>Step1.aspx?rel=$2</rewrite></ rule></ urlrewrites>< traceenabled="false"localOnly="true"pageOutput="false"traceMode="SortByTime"/>< customErrorsmode="Off"/>< authenticationmode="Windows"/>< compilationdebug="true"defaultLanguage="c#">< assemblies>< addassembly="System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />< addassembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />< addassembly="System.Configuration.Install, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /></ assemblies></ compilation></ system.web></ configuration>et voila celui en local ou tout est ok : <? xmlversion="1.0"?>< configuration>< configSections>< sectionname="dataConfiguration"type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data" />< sectionGroupname="system.web">< sectionname="urlrewrites"type="ThunderMain.URLRewriter.Rewriter, ThunderMain.URLRewriter, Version=1.0.783.30976, Culture=neutral, PublicKeyToken=7a95f6f4820c8dc3"/></ sectionGroup></ configSections>< appSettings>< addkey="NbCardByPage"value="30"/></ appSettings>< connectionStrings>< addname="MargoDatabase"connectionString="server=PORT-JPI;database=Margo_Database;Integrated Security=true"providerName="System.Data.SqlClient" /></ connectionStrings>< dataConfigurationdefaultDatabase="MargoDatabase"/>< system.web>< urlrewrites>< rule>< url>page_theme/(.*)/([0-9]*)/Pge/([0-9]*)</url>< rewrite>themes.aspx?rel=$2&Pge=$3</rewrite></ rule>< rule>< url>theme/(.*)/([0-9]*)</url>< rewrite>themes.aspx?rel=$2</rewrite></ rule>< rule>< url>ecards/(.*)/ecard/([0-9]*)</url>< rewrite>Step1.aspx?rel=$2</rewrite></ rule></ urlrewrites>< traceenabled="true"localOnly="false"pageOutput="true"traceMode="SortByTime"/>< customErrorsmode="Off"/>< authenticationmode="Windows"/>< compilationdebug="true">< assemblies>< addassembly="System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>< addassembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>< addassembly="System.Configuration.Install, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies></ compilation></ system.web></ configuration>Je ne comprends pas vladam(pour vous servir :) )
|
|
Cette discussion est classée dans : request, aspx, id, cat, amp
Répondre à ce message
Sujets en rapport avec ce message
url rewriting ou ma femme me quitte pour un programmeur php ! [ par dedzep ]
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
HyperlinkColumn - Datagrid [ par cfabre22 ]
Bonjour, Dans un datagrid, j'ai une colonne de type hyperlinkcolumn.Je souhaiterais pouvoir modifier le paramètre DataNavigateURLFormatstring dynamiqu
Diaporama en ASP.NEt [ par krummy ]
Bonjour, Je suis acuellement en train de développer une page qui affichera toute les images d'une bd, et ceci en forme de diaporama... Il faut donc q
REQUEST.FORM sous aspx [ par AC1 ]
Il y a surement un paramètre qui m'échappe, mais je ne parviens pas à faire un "vieux" request form sur une page aspx1 pour récupérer les valeurs dans
suppression dans plusieurs tables [ par xclear ]
Salut à tousj'ai ca:if request.form("id")"" then SQL = "SELECT * FROM forums WHERE id_forum=0" RS.open SQL,conn,3,3 RS.addnew RS("password_for
Atlas-Gridview-Javascript [ par austinio ]
Bonjour, j'essaie de remplir une GridView en javascript...pour detailer un peu ce que je fais : j'ai une DropDownList où il ya une lise des cat
concaténation avec champs variable [ par 76julien ]
Bonjour mon tout petit probleme, certes très chiant.. est le suivant:Pour info, je suis ici dans un GridView, je voudrais faire :asp<font co
Requete [ par mimosa803 ]
Bonjour, j'ai trouvé un problème à exécuté ma requête malgrès qu'elle marche sur Sql Server :Voila la reqûete Sql :select distinct([name]),(select re
ModalPopupExtender et UpdatePanel [ par filip24 ]
Bonjour,Bon au lieu de faire un long discours je vous montre mon message d'erreur : An extender can't be in a different UpdatePanel than the control i
PROBLEME DE MISE A JOUR AVEC FORMVIEW [ par simo5266 ]
Bonsoir tt le monde, Je développe avec VS.NET 2005 une application WEB et j'ai un probleme de mise a jour(modification ou bien la suppression) avec
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVéTECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVé par ROMELARD Fabrice
Speaker : Guillaume Rochette Cette session est dédiée à fournir le retour sur la mise en place d'un cloud privé (IaaS) par Osiatis pour son compte ou celui de ses clients. Ce projet s'est déroulé sur 4 mois et a permis de faire évoluer...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYSTECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYS par ROMELARD Fabrice
Speakers : Lionel Limozin et Alain Marty La session commence par une découverte de SharePoint à travers la mise en place d'un environnement SharePoint pour la gestion des Sessions animées par BeWise. Le besoin est très ba...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|