Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    URL rewriter in ASP e motori di ricerca

    Salve a tutti,
    premetto, per coerenza, che ho già postato questa discussione in http://forum.html.it/forum/showthrea...readid=1452927 della sezione ASP data la materia trattata. Ma poiché l'argomento non si esaurisce nell'ASP, ho ritenuto di doverla ripubblicare in questa sezione perché avrei bisogno dell'assistenza di esperti nella materia del SEO.

    In effetti desidererei sciogliere un dubbio che mi è sorto riguardo a una procedura che ho realizzato e adottato (adesso stiamo parlando di ASP, alla fine la questione verterà sul SEO).

    La procedura mi consente di servirmi della pagina 404 404.asp per ottenere un cosiddetto URL rewriter, basandosi su un file catalogo.asp che provvede alla navigazione del catalogo servendosi di (fino a) tre parametri in querystring:

    catalogo.asp[?c=(ID della categoria)[[&s=(ID della sottocategoria)]&id=(ID del prodotto)]]

    Dunque, per esempio:
    catalogo.asp (mostra l'elenco delle categorie)
    catalogo.asp?c=2 (mostra l'elenco delle sottocategorie in categoria 2)
    catalogo.asp?c=2&s=3 (mostra l'elenco degli articoli in sottocategoria 3 di categoria 2)
    catalogo.asp?c=2&s=3&id=5 (mostra l'articolo 5 in sottocategoria 3 di categoria 2)

    Su questa premessa sarà possibile segmentare (con uno slash "/") categoria, sottocategoria e articolo in un URL del tipo "http://www.miodominio.it/fotografia.html" o "http://www.miodominio.it/fotografia/fotocamere-digitali.html" o "http://www.miodominio.it/fotografia/fotocamere-digitali/eos-505.html" e trasformare i path in parametri.

    Poniamo il caso di "http://www.miodominio.it/fotografia/fotocamere-digitali/eos-505.html": non esistendo fisicamente né il percorso né tanto meno il file, verrà chiamato in causa il file 404.asp che contiene la seguente procedura:

    codice:
    Function URL_rewriter(cUrl, cQueryString)
    	Dim URhttp
    	Set URhttp = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
    	URhttp.open "GET", cUrl & cQueryString, false
    	URhttp.Send()
    	URL_rewriter = URhttp.ResponseText
    	Set URhttp = Nothing
    End Function
    
    cNomePagina = lcase(Request.ServerVariables("QUERY_STRING"))
    cNomePagina = replace(cNomePagina,"404;http://www.miodominio.it:80/", "")
    cNomePagina = replace(cNomePagina,".html", "")
    cNomePagina = replace(cNomePagina,"-", " ")
    aParametri = split(cNomePagina,"/")
    nParametri = ubound(aParametri)
    
    '----------
    'A questo punto è opportuno qualcosa del tipo "select case"
    'per stabilire e la profondità della chiamata e trattarla.
    '
    'Quella seguente è la chiamata con tutti e tre i parametri:
    '----------
    
    cCategoria = aParametri(0)
    cSottocategoria = aParametri(1)
    cArticolo = aParametri(2)
    
    cQuery = "SELECT cat_ID, sub_ID, art_ID FROM categorie"
    cQuery = cQuery & " INNER JOIN sottocategorie ON categorie.cat_ID=sottocategorie.sub_cat_ID"
    cQuery = cQuery & " INNER JOIN articoli ON sottocategorie.sub_ID=articoli.art_sub_ID"
    cQuery = cQuery & " WHERE cat_nom=""" & cCategoria & """ AND sub_nom=""" & cSottocategoria & """ AND art_nom=""" & cArticolo & """ LIMIT 1"
    set rs = oledbconn.execute(cQuery)
    
    if not rs.eof then
    	cUrl = "http://www.miodominio.it/catalogo.asp"
    	cQueryString = "?c=" & rs("cat_ID") & "&s=" & rs("sub_ID") & "&id=" & rs("art_ID")
    	response.write URL_rewriter(cUrl, cQueryString)
    elseif rs.eof then
    	response.write "articolo non presente"
    end if
    La procedura, così com'è, funziona.
    Ma questo non mi persuade sulla sua efficacia perché sospetto che i motori di ricerca indicizzino la pagina 404.asp piuttosto che la pagina virtuale.

    Per questo mi rivolgo e chiedo a chi me ne sappia dare la risposta, confermando o confutando il mio sospetto, ringraziandovi tutti per l'attenzione.

  2. #2
    Moderatore di Motori di ricerca e webmarketing L'avatar di rigby76
    Registrato dal
    Oct 2005
    residenza
    Firenze
    Messaggi
    4,913
    Dato che il cross posting non è ammesso, e dato che qui non si tratta di ASP, ti chiedo la cortesia di aprire una nuova discussione spiegando cosa succede a livello di richieste HTTP, senza postare il codice.
    estremizzo, banalizzo e polemizzo!

    Hai letto le FAQ sui Motori di Ricerca?

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.