Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : url rewriting SOS lo peu compris ! [ Archives ASP & ASP.NET / ASP.net ] (dedzep)
|
url rewriting SOS lo peu compris !
le 16/11/2005 12:52:25
|
|
Re : url rewriting SOS lo peu compris !
le 19/12/2006 16:21:44

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.
|
|
|
|
Re : url rewriting SOS lo peu compris !
le 19/12/2006 16:32:23
|
|
Re : url rewriting SOS lo peu compris !
le 19/12/2006 18:23:09

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
|
|
|
|
Re : url rewriting SOS lo peu compris !
le 08/01/2007 18:32:07

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 ?
|
|
|
|
Re : url rewriting SOS lo peu compris !
le 08/01/2007 23:31:42

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 !
|
|
|
|
Re : url rewriting SOS lo peu compris !
le 10/01/2007 09:46:06

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
|
|
|
|
Re : url rewriting SOS lo peu compris !
le 08/09/2007 19:02:21

vladam
(Admin CS)
|
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 :) )
|
|
|
|
Re : url rewriting SOS lo peu compris !
le 09/09/2007 10:40:14

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.
|
|
|
|
Re : url rewriting SOS lo peu compris !
le 09/09/2007 12:31:00

vladam
(Admin CS)
|
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 :) )
|
|
|
Classé sous : request, aspx, id, cat, amp
|
CalendriCode
| | | L | M | M | J | V | S | D |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | | | | | |
|
Téléchargements
Logiciels à télécharger sur le même thème :
|