I have a blog who created pages this way: article.asp?id=222
and I'm using a sort of asp urlrewrite. It works perfectly with creating the articles etc, but now I have to put a "301 moved permanently" in the old article.asp page.
I have a function which converts the title of the article to a page name, using title and id:
Code:
Function ConvertiTitoloInNomeScript(Titolo, IDArticolo)
Risultato = Titolo
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 = Replace(Risultato, "!", "")
Risultato = Replace(Risultato, ",", "-")
Risultato = Risultato & ".asp"
ConvertiTitoloInNomeScript = Risultato
End Function
With my really really poor knowledge of ASP I've written this in article.asp:
Code:
<%@ Language=VBScript %>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "& Server.MapPath("/mdb-database/dblog.mdb") &";"
Function ConvertiTitoloInNomeScript(Titolo, IDArticolo)
Risultato = Titolo
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 = Replace(Risultato, "!", "")
Risultato = Replace(Risultato, ",", "-")
Risultato = Risultato & ".asp"
ConvertiTitoloInNomeScript = Risultato
End Function
IDD = request.ServerVariables("QUERY_STRING")
Dim SQLArticoli
SQLArticoli= " SELECT Articoli.Titolo FROM Articoli WHERE Articoli.ID = IDD "
Set RSArticoli = Server.CreateObject("ADODB.Connection")
RSArticoli.Open SQLArticoli, Conn, 1, 3
Response.Status = "301 moved Permanently"
Response.AddHeader "Location", ConvertiTitoloInNomeScript(RSArticoli("Titolo"), IDD)
%>
Probably this is absolutely wrong, anyway the error I get is:
Microsoft VBScript runtime (0x800A01C2)
Wrong number of arguments or invalid property assignment: 'RSArticoli'