- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- Mod Rewrite in puro asp senza componenti per aruba
-
Mod Rewrite in puro asp senza componenti per aruba
Sono un programmatore e volevo condividere una porzione di codice utile per tutti quelli che utilizzano spazi web non gestibili da server tipo aruba e altri.
Volevo condividere il codice che nello specifico fà questo:
effettua una chiamata tramite XMLHTTP, se tutto va bene e la pagina restituisce lo stato 200 immagazzina il contenuto in una variabile (per contenuto intendo il codice html nella sua totalità) e crea fisicamente un file html.
Per fare questo ho creato due funzioni che lavorano tra loro, quindi facilmente utilizzabili. Per la creazione del file in principio avevo utilizzato il componete fso, ma ho dovuto sostituirlo con ADODB.Stream, visto che il primo era poco perfommante e tra la chiamata con la prima funzione e la seconda non riusciva a memorizzare la variabile.
[html]<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" -->
<%
call SaveFile("/ewe.htm",geturl("qui và la pagina da richiamare"))Function GetUrl(Url)
Dim Http
Set Http = Server.CreateObject("Microsoft.XMLHTTP")
Http.open "GET",Url,False
Http.Send()
GetUrl = Http.ResponseText
Set Http=Nothing
End FunctionFunction SaveFile(PathFile,Content)
Set oStream = Server.CreateObject("ADODB.Stream") oStream.Open oStream.Charset = "ascii" oStream.Type = adTypeText oStream.WriteText Content oStream.SaveToFile Server.MapPath("/public"&PathFile) , adSaveCreateOverWrite oStream.Close set oStream = Nothing
End Function
%>[/html]Mi sono deciso a scrivere anche io dopo aver letto il libro di Giorgio e anche quello di Carta. Complimenti per l'ottimo lavoro e spero di poter essere utile a questa grande comunità.
-
Ciao moican, grazie per il contributo!
Una domanda: ma hai previsto di chiamare SaveFile(-) "a mano" o hai cercato di automatizzare il tutto?
-
Grazie a voi,
io queste due funzioni le uso agganciandole ad eventuali variabili prese da db es.
mettendo queste funzioni in una eventuale pagina che processa i dati per l'inserimento in un db prelevo il nome del pulsante creato e lo metto al posto (qui record&".htm").
per richiamare tale funzione o si usa:
<%
call SaveFile("/ewe.htm",geturl("qui và la pagina da richiamare"))
%>
oppure
<%=geturl("qui và la pagina da richiamare")%>il tutto avviene in autoamtico.
Un mio scenario classico è creazione di pulsante es. Hotel a Cattolica
funzione che converte e bonifica il nome, sostituendo spazi e carateri speciali e con il nome del pulsante creazione fisica della pagina cioè:
public/Hotel-a-Cattolica.htm
se necessita vi posto anche la terza funzione che automatizza la creazione del nome della pagina
-
Non sarebbe male! Posta posta
-
Le altre due funzioni sono queste:
<% Function NoHTML(Stringa) Set RegEx = New RegExp RegEx.Pattern = "<[^>]*>" RegEx.Global = True RegEx.IgnoreCase = True NoHTML = RegEx.Replace(Stringa, "") End Function Function unisci(testo, id) Risultato = testo Risultato = NoHTML(Risultato) Risultato = LCase(Risultato) Risultato = Replace(Risultato, " ", "-") Risultato = Replace(Risultato, "\", "-") Risultato = Replace(Risultato, "/", "-") Risultato = Replace(Risultato, ":", "-") Risultato = Replace(Risultato, "*", "-") Risultato = Replace(Risultato, "?", "-") Risultato = Replace(Risultato, "<", "-") Risultato = Replace(Risultato, ">", "-") Risultato = Replace(Risultato, "|", "-") Risultato = Replace(Risultato, """", "") Risultato = Replace(Risultato, "'", "-") Risultato = id & "-" & Risultato & ".asp" unisci = Risultato End Function%>
Le ho fatte seguendo la logica degli url che usa anche questo forum.
Spero possano essere utili,
Ciao Max
-
Ciao, la discussione è un po' vecchia ma mi interessa.
Scusa non capisco come riesci a fare un url rewrite, il codice che hai postato è chiaro, però se fai un pulsante che punta ad una pagina (tu fai l'esempio di Hotel-a-cattolica.htm) questa deve già esistere sul server e non può essere generata "al volo". Quindi, correggimi se sbaglio, le suddette pagine le crei prima tramite uno script automatizzato che legge parametri da un db e utilizza le funzioni che hai postato, giusto?
Insomma se ho capito bene è un sistema più per creare mappe del sito piuttosto che un rewrite vero e proprio.
Ciao e grazie.
-
Ho letto solo ora (scusate),
il mio codice crea la pagina fisicamente non bisogna metterle manualmente ecc... Non crea mappe ma decidi tu: htm html txt ecc...