Ciao ragazzi,
sto cercando di capirci qualcosa sull'url rewriting.
Dopo aver studiato un bel pò di link ho fin'ora realizzato questo, ma mi porta un errore che non riesco a risolvere, spero possiate aiutarmi.
Ho come prima cosa creato una classe chiamata url_re.vb
codice:
Imports Microsoft.VisualBasic
Imports System
Imports System.IO
Imports System.Web
Imports System.Web.UI
Public Class url_re
Implements IHttpHandler
Public ReadOnly Property IsReusable() As Boolean Implements System.Web.IHttpHandler.IsReusable
Get
Return True
End Get
End Property
Public Sub ProcessRequest(ByVal context As HttpContext) Implements System.Web.IHttpHandler.ProcessRequest
Dim url As String = context.Request.Path.ToLower() ' ignora il dominio e la querystring
' il pezzo iniziale dell'url
Dim baseUrl As String = "content/"
If url.IndexOf(baseUrl) = -1 Then
Return
End If
url = url.Substring(url.IndexOf(baseUrl) + baseUrl.Length)
If url.IndexOf("/") = -1 Then
Return
End If
' prendo solo i pezzi che mi interessano
url = url.Substring(0, url.LastIndexOf("/"))
' prendo le informazioni dall'url
Dim categoryID As String = Nothing
Dim ID As String = Nothing
ID = url.Split("/"c)(0)
categoryID = url.Split("/"c)(1)
' eseguo la richiesta alla pagina vera
context.Server.Execute(String.Concat("~/prodotti.aspx?ID_cat=", ID, "&ID_prod=", categoryID), False)
End Sub
End Class
Poi ho modificato il web.config aggiungendo tra gli httphandler il seguent codice:
<add verb="*" path="~/prodotti*.aspx" type="Url_re, App_Code" />
Ho messo App_Code in quanto la classe si trova in quella cartella.
A questo punto se provo a fare l'anteprima ottengo questo errore:
Impossibile caricare il tipo 'Url_re' dall'assembly 'App_Code'.
girando unpò ho capito (credo...) che è necessario creare una dll della classe appena creata.
Per fare ciò allora ho aperto Esegui e ho scritto il seguente comando:
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\vbc.e xe /target:library /out:e:\website\storevioletta\Bin\url_re.dll e:\website\storevioletta\App_Code\url_re.vb
ma anche se parte il prompt per un secondo poi non mi ritrovo la dll che dovrebbe avermi creato...
A questo punto non so proprio piu che fare...spero possiate aiutarmi.
Grazie mille