Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Modulo URL Rewrite

  1. #1
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396

    Modulo URL Rewrite

    Ciao a tutti,

    mi trovo davanti ad un progettino, cioè la creazione di una specie di modulo rewrite sull'url.

    Funzionamento:

    Passo le variabili da un form ad una pagina asp che li elabora, tramite una Regula Expression sostituisco gli spazi con un carattere, creo una pagina .asp contenente una query che mi permette di visualizzare il contenuto di quella news, una volta cliccato sul link inerente alla news scelta visualizzo le informazioni della news selezionata.

    form.asp

    Codice PHP:
    <form action="aggiungi.asp" method="POST">
        
        
    TITOLO <input name="titolo" type="text">


        
        
    CONTENUTO <textarea name="contenuto" cols="" rows=""></textarea>


        
        
    PAGINA <input type="text" name="link_news">


        
        <
    input name="ok" type="submit" value="OK">

    </
    form
    Niente di speciale, il form trasmette i dati alla pagina aggiungi.asp, il campo che andrà a comporre il link sarà link_news

    aggiungi.asp

    Codice PHP:

    <%
    dim TitoloContenutoDataPagina

    Titolo 
    Replace(Request.Form("titolo"),"'""''")

    Contenuto Replace(Request.Form("contenuto"),"'""''")

    Pagina Replace(Request.Form("link_news"),"'""''")

    Data date()


    Function 
    NoHTML(Stringa)
      
    Set RegEx = New RegExp
      RegEx
    .Pattern "<[^>]*>"
      
    RegEx.Global = True
      RegEx
    .IgnoreCase True
      NoHTML 
    RegEx.Replace(Stringa"")
    End Function

    Function 
    ConvertiTitoloInNomeScript(Pagina)
      
    Pagina Pagina
      Pagina 
    NoHTML(Pagina)
      
    Pagina LCase(Pagina)
      
    Pagina Replace(Pagina" ""-")
      
    Pagina Replace(Pagina"\", "-")
      Pagina = Replace(Pagina, "
    /", "-")
      Pagina = Replace(Pagina, "
    :", "-")
      Pagina = Replace(Pagina, "
    *", "-")
      Pagina = Replace(Pagina, "
    ?", "-")
      Pagina = Replace(Pagina, "
    <", "-")
      Pagina = Replace(Pagina, "
    >", "-")
      Pagina = Replace(Pagina, "
    |", "-")
      Pagina = Replace(Pagina, """", "")
      Pagina = Replace(Pagina, "'", "-")
      Pagina = Pagina &  ".asp"
      ConvertiTitoloInNomeScript = Pagina
    End Function


    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Documento = FSO.OpenTextFile(Server.MapPath("../partito/news/") & "\" & ConvertiTitoloInNomeScript(Pagina), 2, True)
     
    ContenutoFile = "" 
    ContenutoFile = ContenutoFile & "<" & "%" & vbCrLf 
    ContenutoFile = ContenutoFile & "dim link_news" & vbCrLf
    ContenutoFile = ContenutoFile & "link_news = "" "&Pagina&" "" "
    ContenutoFile = ContenutoFile & "%" & ">" & vbCrLf 
    ContenutoFile = ContenutoFile & "  "
    Documento.Write ContenutoFile 
     

    sql_insert = "INSERT INTO informazioni (titolo, contenuto, data_invio, link_news) values"&_
    "('"&Titolo&" ',' "&Contenuto&" ',' "&Data&" ',' "&Pagina&"')" 

    Set rs = Server.CreateObject("ADODB.Recordset")

    conn.execute(sql_insert)

    Set FSO = nothing 
    conn.close
    set rs= nothing
    Set conn=Nothing

    %> 
    Questa pagina elabora i dati passati dal form, tramite una regular expression elabora la variabile link_news eseguendo un replace sugli spazi sostituendoli con il carattere "-". Infine crea un file con estensione .asp, inserendo all'interno un include e la dichiarazione della variabile link_news

    inc_pagina.asp

    Codice PHP:


    <html>
    <
    head>
        <
    title></title>
    </
    head>

    <
    body>
    <%

    sql "SELECT * FROM news WHERE link_news='" &Pagina"'"
    Set RS Server.CreateObject("ADODB.Recordset")
    rs.Open SQLConn33
        

    %>
        [
    b]<%=rs("titolo")%>[/b]

    </
    body>
    <%


    set RS nothing
    conn
    .Close
    set conn 
    Nothing
    %>
    </
    html
    In sostanza ecco il risultato

    1. Passo i dati dal form alla pagina aggiungi.asp, inserisco nel db i parametri passati
    (FUNZIONA)

    2. Tramite la regular expression elaboro la variabile link_news sostituendo gli spazi con il carattere "-"
    (FUNZIONA)

    3. Creo il file .asp inserendo nel contenuto la dichiarazione della variabile link_news e il file include inc_pagina.asp
    (Funziona)

    4. Estraggo il contenuto del db nella homepage, inserisco un link Leggi contenente l'URL link_news
    (FUNZIONA)

    Il problema sta nella visualizzazione della singola news, cioè quando clicco sulla news "titolo-della-news.asp" dovrei vedere tutte le informazioni inerenti al record "titolo-della-news.asp". Ma con la query postata (nella pagina inc_pagina.asp) visualizzo una pagina bianca.

    Procedo a postare la pagina titolo-della-news.asp

    titolo-della-news.asp
    Codice PHP:
    <%
    dim link_news
    link_news 
    " titolo-della-news.asp " 
    %> 
    Dove sbaglio

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    link_news = "titolo-della-news.asp"
    Visto che crei una pagina nuova ogni volta ti conveniva mettere dentro ai file che generi direttamente l'ID della news piuttosto che il nome della pagina.
    L'accesso al record sarebbe più rapido essendo l'ID quasi certamente un indice.

    Roby

  3. #3
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    Hai ragione (come sempre )

    ho inserito nell'intestazione di ogni documento l'id, inserendo nella pagina aggiungi.asp una select con TOP 1 con Id ORDER DESC in modo da prendere l'ultima inserita. Tutto funziona grazie per la delucidazione!

  4. #4
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    Ciao a tutti,

    a distanza di tempo sentol'esigenza di riprendere un mio vecchio post riguardo il metodo url rewrite con tecnologia asp.

    Più passa il tempo e più vediamo utilizzare questo metodo da centinaia di siti più omeno grandi al fine di poter migliorare il posizionamento nei motori di ricerca.

    Ormai credo (parere personale ) che oltre ad un fattore di ottimizzazione sia diventato anche un fattore estetico poter creare un bel "percorso" sostituito al solito pagina.asp?id=1298347&Param=1&Lang=IT...

    Arriviamo al punto, sappiamo benissimo che purtroppo utilizzando un linguaggio come ASP con hosting abbiamo non pochi problemi con un metodo stile permalink (www.miosito.it/moto/kawasaki/120-kawasaki-ninja) e che "a quanto pare" l'unico modo (oltre a filtri e dll non installabili) che rimane è creare fisicamente pagine asp e rinominarle con il titolo dell'articolo o prodotto effettuando un replace dei caratteri "speciali."

    Le due strade che ho preso in considerazione sono questi:

    1. Come già accennato si crea una pagina asp tramite l'oggetto FSO, rinominandola con il titolo dell'articolo effettuando un replace dei caratterispeciali

    2. Si crea un vero e proprio percorso, creando cartelle nelle quali alla fine andare ad inserire le pagine asp create come sopra descritto

    Sinceramente questi due metodi (soprattutto il secondo) li vedo molto macchinosi anche se alla fine funzionano, la domanda in questione (personalmente ho aruba e mi scoccia anche mettere le pagine nella cartella public) è questa:

    Conoscete un mantainer che consente magari di modificare le pagine di errore 404 creando un rewrite più snello?

    Per i moderatori: So che non è possibile citare maintainer, ma sarebbe utile parlare e magari stilare una piccola classifica con pro e contro per ogni di esso, e specifiche riguardanti il'argomento citato in questo post

    So che se n'è già parlato largamente , proporrei però di fare un unico post dove poter prendere in esame questo ormai utilizzatissima pratica.



    PS: scusate per le ripetizioni ma sto scrivendo in un momento di pausa lavorativa

  5. #5
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    Beh, visto che nessuno scrive inizio io.

    Facendo una veloce ricerca in google ho trovato questo sito che offre un host windows 2008 e un modulo url rewrite! Chissà come sarà.. Qualcuno di voi ha avuto un esperienza diretta?

  6. #6
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    UP!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.