Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    88

    ottimizzazione URL attraverso campo descrizione (quasi urlrewrite)

    Salve, stavo implementando (termine grosso per me) un sistema per la scrittura degli URL completi di descrizione del contenuto per renderli più "appetitosi" agli occhi dei vari spider, ma la mia poca esperienza mi ha fatto ben presto capitolare. Mi spiego meglio: nel DB ho creato un campo desc che prevede la descrizione del contenuto della pagina da includere nell'URL in questa forma http://www.miosito.it/risorse/conten...rismo-migliori ma nella riscrittura dell'URL i problemi sono molteplici. Gli spazi possono naturalmente essere sostituiti con la funzione replace per evitare il %20 ma tutti gli altri caratteri speciali come virgole, accenti, lettere accentate, etc. come possono essere convertite? Un replace multiplo? Sarebbe infinito. Ad ogni modo posto il codice per dare un'idea più precisa, puntualizzando che io non sono molto bravo (forse quasi per nulla).

    codice:
    <%
    id1=request.querystring("id")
    
    Set Conn = Server.CreateObject("ADODB.Connection")
    conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("../mdb-database/link.mdb")
    
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open "select * from risorse ", conn
    
    Do while NOT RS.EOF
    id1=rs("id") 
    desc=rs("desc")
    %>
    <a class="links" href="contenuto.asp?id=<% response.write(id1) %>&<% response.write(desc) %>">» <%
    link=rs("link")
    response.write(link)
    %></a>
    
    
    <%
    RS.MoveNext
    Loop
    RS.Close
    %>
    Tenuto conto che dovrebbe andare su aruba dove non si può installare nulla...

    Tutti i suggerimenti sono ben accettati

    Grazie

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Con le espressioni regolari, ecco un esempio:
    codice:
    'Funzione per pulire una stringa e trasformarla in un URL valido
    Function ConvertiTitoloInNomeScript(strTitolo)
        risultato = strTitolo
        risultato = replace(risultato, "à", "a")
        risultato = replace(risultato, "è", "e")
        risultato = replace(risultato, "é", "e")
        risultato = replace(risultato, "ì", "i")
        risultato = replace(risultato, "ò", "o")
        risultato = replace(risultato, "ù", "u")
    
        set re = Server.CreateObject("VBScript.RegExp")
        re.Pattern = "[^\da-z]" 'Lascio solo numeri e lettere
        re.global = true
        re.IgnoreCase = true
        risultato = re.replace(risultato,"-") 'Il resto lo sostituisco con il -
    
        re.Pattern = "-{2,}"
        re.global = true
        re.IgnoreCase = true
        risultato = re.replace(risultato,"-") 'Lascio un solo - se ne ce sono di più consecutivi
        set re = nothing
        
        if left(risultato,1) = "-" then
            risultato = mid(risultato,2,len(risultato)-1) 'Tolgo - se è il primo carattere
        end if
        if right(risultato,1) = "-" then
            risultato = left(risultato,len(risultato)-1) 'Tolgo - se è l'ultimo carattere
        end if
        risultato = lcase(risultato)
        ConvertiTitoloInNomeScript = risultato
    end function
    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    88
    A questo punto, se ho ben capito, dovrei creare un file esterno (ad es. function.asp) e richiamarlo all'interno del mio codice? E se è così dove lo metto? Mi scuso, ma ho i miei limiti nella programmazione...

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: ottimizzazione URL attraverso campo descrizione (quasi urlrewrite)

    Prova cosi:
    codice:
    <%
    'Funzione per pulire una stringa e trasformarla in un URL valido
    Function ConvertiTitoloInNomeScript(strTitolo)
        risultato = strTitolo
        risultato = replace(risultato, "à", "a")
        risultato = replace(risultato, "è", "e")
        risultato = replace(risultato, "é", "e")
        risultato = replace(risultato, "ì", "i")
        risultato = replace(risultato, "ò", "o")
        risultato = replace(risultato, "ù", "u")
    
        set re = Server.CreateObject("VBScript.RegExp")
        re.Pattern = "[^\da-z]" 'Lascio solo numeri e lettere
        re.global = true
        re.IgnoreCase = true
        risultato = re.replace(risultato,"-") 'Il resto lo sostituisco con il -
    
        re.Pattern = "-{2,}"
        re.global = true
        re.IgnoreCase = true
        risultato = re.replace(risultato,"-") 'Lascio un solo - se ne ce sono di più consecutivi
        set re = nothing
        
        if left(risultato,1) = "-" then
            risultato = mid(risultato,2,len(risultato)-1) 'Tolgo - se è il primo carattere
        end if
        if right(risultato,1) = "-" then
            risultato = left(risultato,len(risultato)-1) 'Tolgo - se è l'ultimo carattere
        end if
        risultato = lcase(risultato)
        ConvertiTitoloInNomeScript = risultato
    end function
    
    id1=request.querystring("id")
    
    Set Conn = Server.CreateObject("ADODB.Connection")
    conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("../mdb-database/link.mdb")
    
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open "select * from risorse ", conn
    
    Do while NOT RS.EOF
    id1=rs("id") 
    desc=ConvertiTitoloInNomeScript(rs("desc"))
    %>
    <a class="links" href="contenuto.asp?id=<% response.write(id1) %>&<% response.write(desc) %>">» <%
    link=rs("link")
    response.write(link)
    %></a>
    
    
    <%
    RS.MoveNext
    Loop
    RS.Close
    %>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    88
    Funziona a meraviglia!!!

    Grazie 1000.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.