Avatar billede jenskf Nybegynder
23. juli 2001 - 20:46 Der er 19 kommentarer og
1 løsning

Konverter fra \".htm\" til \".asp\"

Hej

Da jeg har omdøbt alle mine hjemmeside-filer fra .htm til .asp, kan jeg enten vælge (altså hvis mine besøgende stadig skal kunne finde de rigtige sider) enten at oprette en lang liste over alle siderne, som har skiftet navn, eller gøre noget som er meget smartere. Nemlig at lave et script (som bliver placeret i errors.asp, dvs. ”endestationen” for ikke-eksisterende URL’er), som undersøger efternavnet, og slutter det på ”.htm”, så skal det omdøbes til ”.asp” og slutteligt skal der så redirectes til den nye adresse.

Men jeg sidder fast i programmeringen, så vil en eller anden ikke skrive det færdigt? Jeg kan ikke forestillet mig, at jeg er langt fra målet med nedenstående kode.

MVH
Jens


<%
theURL = LCase(Request.ServerVariables(\"Query_String\"))
check = InStr(1, theURL, \".htm\")
If check => \"1\" Then NewAddress = Right(theURL, 3)
Response.redirect(NewAddress+\"asp\")
End if
%>
Avatar billede netsrac Praktikant
23. juli 2001 - 20:51 #1
theURL = Lcase(Request.servervariables(\"SCRIPT_NAME\"))
If right(theURL, 4) = \".htm\" Then
newURL = Left(theURL, len(theURL) - 4) & \".asp\"
Response.redirect(newURL)
End if
Avatar billede bjarke-b Nybegynder
23. juli 2001 - 20:57 #2
jenskf > Du kan jo ikke sætte den kode netsrac har lavet ind på dine html sider da de clientside og ikke vil blive kørt som asp.
Avatar billede netsrac Praktikant
23. juli 2001 - 21:01 #3
Hm....

Det skal vist laves lidt om, hvis det skal ligge i en errors.asp:

theURL = Lcase(Request.servervariables(\"HTTP_REFERER\"))
If right(theURL, 4) = \".htm\" Then
newURL = Left(theURL, len(theURL) - 4) & \".asp\"
Response.redirect(newURL)
End if


Avatar billede jenskf Nybegynder
23. juli 2001 - 23:01 #4
Til Netsrac:

Jeg har indsat følgende i errors.asp:

<%
theURL = Lcase(Request.servervariables(\"HTTP_REFERER\"))
If right(theURL, 4) = \".htm\" Then
newURL = Left(theURL, len(theURL) - 4) & \".asp\"
Response.redirect(newURL)
End if
%>

Men jeg får følgende fejl:

Der opstod en Microsoft VBScript-kørselsfejl (0x800A0005). Procedurekaldet eller argumentet er ugyldigt: \'Left\'

Hjælp?
Avatar billede jenskf Nybegynder
23. juli 2001 - 23:21 #5
Glem ovenstående fejl :-)
Avatar billede jenskf Nybegynder
23. juli 2001 - 23:43 #6
Følgende giver intet output:
theURL = Lcase(Request.servervariables(\"HTTP_REFERER\"))

Men hvis man udskifter den med følgende, sker der noget:
theURL = LCase(Request.ServerVariables(\"Query_String\"))

Ydermere, men skal strengen \"404;\" ikke have kappes af sætningen, ellers ryger man jo lige tilbage til errors.asp???

Ydermere, ydermere, mener du ikke \"right\" i stedet for \"left:
newURL = Left(theURL, len(theURL) - 4) & \".asp\"

MVH
Jens
Avatar billede netsrac Praktikant
24. juli 2001 - 02:27 #7
Indeholder theURL ikke noget eller hvad siger du ?
Avatar billede jenskf Nybegynder
24. juli 2001 - 15:53 #8
1) Ja, theURL er tom, hvis jeg skriver følgende:
theURL = Lcase(Request.servervariables(\"HTTP_REFERER\"))

Men udskifter jeg den med følgende, er den ikke tom:
theURL = LCase(Request.ServerVariables(\"Query_String\"))

2) Ydermere, skal strengen \"404;\" ikke klippes af theURL, ellers ryger den besøgende lige tilbage til errors.asp.

3) Da du skrev følgende, mente du så ikke \"right\" i stedet for \"left\"?
newURL = Left(theURL, len(theURL) - 4) & \".asp\"
Avatar billede netsrac Praktikant
24. juli 2001 - 15:57 #9
2 ) Hvad indeholder strengen ?

3 ) Nej, det var for at fjerne .htm, men det er ligemeget nu.
Avatar billede jenskf Nybegynder
24. juli 2001 - 16:00 #10
Avatar billede netsrac Praktikant
24. juli 2001 - 16:03 #11
Ikke noget filnavn ? eller noget ?
Avatar billede jenskf Nybegynder
24. juli 2001 - 18:01 #12
Jo en fil - det glemte jeg vidst.
Avatar billede netsrac Praktikant
24. juli 2001 - 18:11 #13
Så skal du jo bare fjerne 404;

theURL =  LCase(Request.ServerVariables(\"Query_String\"))
theURL = mid(theURL, 4)
Response.redirect theURL
Avatar billede jenskf Nybegynder
24. juli 2001 - 21:30 #14
Jeg har prøvet at køre følgende, men det virker ikke:

<%
theURLL = LCase(Request.ServerVariables(\"Query_String\"))
Response.write(\"theURL: \"+theURLL) %><br><%
If right(theURL, 4) = \".htm\" Then
newURL1 = Left(theURL, len(theURL) - 4) & \".asp\"
newURL2 = mid(theURL, 4)
Response.redirect newURL2
End if
Response.write(\"theURL: \"+theurl) %><br><%
Response.write(\"newURL1: \"+newURL1) %><br><%
Response.write(\"newURL2: \"+newURL2) %><br><%
%>

Variablens værdi \"går tabt\" i ovenstående script. Her er resultatet ved test af en vilkårlig side:

theURL: 404;http://www.minhjemmeside.dk/test.htm
theURL: (Tom)
newURL1: (Tom)
newURL2: (Tom)

Hjælp?
Avatar billede netsrac Praktikant
24. juli 2001 - 21:36 #15
Du skal kun bruge dette:

theURL =  LCase(Request.ServerVariables(\"Query_String\"))
theURL = mid(theURL, 4)
Response.redirect theURL
Avatar billede jenskf Nybegynder
24. juli 2001 - 23:22 #16
Det du lige har skrevet kommer aldrig til at virke - jeg har allerede prøvet det.

Jeg prøver lige forfra i et nyt spg., som en anden kan svare på.
Avatar billede netsrac Praktikant
24. juli 2001 - 23:26 #17
Sorry, det skal være:

theURL =  LCase(Request.ServerVariables(\"Query_String\"))
theURL = mid(theURL, 4)
if right(lcase(theurl), 4) = \".htm\" Then
theURL = left(theURL, len(theURL) - 4) & \".asp\"
End if
Response.redirect theURL
Avatar billede netsrac Praktikant
24. juli 2001 - 23:49 #18
theURL =  LCase(Request.ServerVariables(\"Query_String\"))
theURL = mid(theURL, 5)
if right(lcase(theurl), 4) = \".htm\" Then
theURL = left(theURL, len(theURL) - 4) & \".asp\"
End if
Response.redirect theURL
Avatar billede jenskf Nybegynder
01. august 2001 - 16:14 #19
Nu virker det!

Mange tak for hjælpen.
Avatar billede netsrac Praktikant
01. august 2001 - 16:21 #20
Så lidt :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester