---
title: "Hjälp med sökmotorvänlig URL"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/157004-hjälp-med-sökmotorvänlig-url"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Asa"
published: "2007-02-09T16:35:18.000Z"
updated: "2007-02-10T13:11:18.000Z"
replies: 16
views: 848
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/157004-hjälp-med-sökmotorvänlig-url"
---

# Hjälp med sökmotorvänlig URL

## #1 — Asa, 2007-02-09T16:35Z

Kan någon hjälpa mig med detta för min Gruvsjo.com? Ge mig tips på hur jag skall göra allt detta.. Skulle bli mycket tacksam för det isåfall. 

Istället för att använda följande länk till en artikel:
<http://www.gruvsjo.com/artikel.asp?pid=1&artID=81>

Vill jag det skall stå så här:
<http://www.gruvsjo.com/artiklar/namn_pa_artikel>

Jag måste använda mig av 404 felsidor för jag har ej tillgång till ISAPI-filter

Permalänk: https://www.webforum.nu/p/157004

## #2 — spango, 2007-02-09T18:13Z

En variant är att använda <http://www.gruvsjo.com/artikel.asp/namn_pa_artikel> och sen plocka from allt efter filnamnet med Request.ServerVariables("PATH_INFO").

Permalänk: https://www.webforum.nu/p/1933879

## #3 — colione, 2007-02-09T18:23Z

Hmm, 
Det är faktiskt hyffsat enkelt. Du börjar med att skapa en 404.asp som får ta hand om alla requests.
Sidan som du frågade efter skickas med i Request.ServerVariables("QUERY_STRING")
Du kan ta det värdet, leta reda på alla slashar, ta värden som finns efter din domän.tld. 

Därefter har du en funktion som kollar av vilken "undermapp" du vill åt och skickar dig vidare till en funktion för den "undermappen". Tänkte du bara använda artiklar som undermapp blir det enklare. Då tar du bara det sista värdet som skickad med och gör en sql-fråga till databasen efter artikelnamnet, plockar ut pid och artID från databasen, lagrar dem i sessioner.

Därefter kan du köra en server.transfer("artikel.asp")
Och därifrån hämtar du ut pid och artid från sessionen istället för en querystring.

För att skriva ut SEF-länkar kan du ju göra en funktion som du kallar på typ:

\<a href="\<%=SEFUrl(1,81)%\>"\>

Där SEFUrl kör en sql-sats där den hämtar artikel namnet baserat på idt du skickade med och skickar tillbaka typ: "artiklar/"&namn_pa_artikel

i samma funktion kan du ju se till att göra en replace på å ä och ö till aa, ae och oe. Då google ser dessa som åäö...

Det vore bra om du kunde skicka ett http 200 också för okej..men jag är tveksam om det går.

Permalänk: https://www.webforum.nu/p/1933882

## #4 — emission, 2007-02-09T18:39Z

> **colione skrev:**
>
> Det vore bra om du kunde skicka ett http 200 också för okej..men jag är tveksam om det går.

Det går utmärkt, och är i det närmaste ett krav för att uppnå sökmotorvänlighet. 

```
Response.Status = "200 OK"
```

Permalänk: https://www.webforum.nu/p/1933887

## #5 — colione, 2007-02-09T18:42Z

Jo, men jag tänkte att huvudet redan var skickat iom att den går till en 404 sida först.

Permalänk: https://www.webforum.nu/p/1933890

## #6 — Asa, 2007-02-09T18:45Z

Men hur skall man göra. Jag vet inte alls hur man gör. skall jag länka om till mina kurser och annat på helt annat sätt eller hur gör man. Alla som länkar mig vet ju att det ligger under ex: artikel.asp?pid=1&aID=1

VIll nån hjälpa mig med detta så jag får igång det. Betalning självklart om det blir för mycket jobb.

Permalänk: https://www.webforum.nu/p/1933892

## #7 — colione, 2007-02-09T18:51Z

Hmm, du kan ju kolla om du får en querystring medskickad till artikel.asp men sessionerna med artid och pid inte är definierade. Om du får en querystring så gör du en fråga baserat på detta och hämtar ut artikel-namnet ur databasen och skickar en redirect till /artiklar/artikeln_namn där sedan 404-sidan gör det som jag skrev i min post ovan.

Om vi vänder på frågan. Hur tror du att du skall börja?

Permalänk: https://www.webforum.nu/p/1933893

## #8 — Asa, 2007-02-09T19:03Z

Skall testa göra dessa redirects och 404 felsidan till en början. Jag återkommer till denna tråden hur det går.

Permalänk: https://www.webforum.nu/p/1933896

## #9 — Asa, 2007-02-09T19:23Z

Men kan jag använda följande?

request.QueryString("pid")
och 
request.QueryString("artID")

pid är alltid med. Kan jag hämta ut det så istället med det du skrev ovan?

Permalänk: https://www.webforum.nu/p/1933901

## #10 — Asa, 2007-02-09T19:27Z

Weee:
<http://www.gruvsjo.com/artiklar/Barnsaekra-ditt-hem>

Kolla

Så här gjorde jag i min testfil transfer.asp:

```
<!--#Include file="Include/settings.asp"-->
<!--#Include file="Include/function.asp"-->
<!--#Include file="Include/db.asp"-->

<%
Session("pid")      = request.QueryString("pid")
Session("artID")    = request.QueryString("artID")
Session("scriptID") = request.QueryString("scriptID")

Function ReplaceText(strValue)
	strValue = Replace(strValue," ","-")
	strValue = Replace(strValue,"å","aa")
	strValue = Replace(strValue,"ä","ae")
	strValue = Replace(strValue,"ö","oe")
	ReplaceText = strValue
End Function

If Session("artID") <> "" then
	Set RS=Conn.Execute("Select rubrik From gruvsjo_artiklar Where verify=1 and artID=" & FixSQL(Session("artID")))
		If Not RS.EOF Then
			strRub = ReplaceText(RS(0))
		Else
			strRub = "Error"
		ENd If
	RS.Close:Set RS=Nothing
End If

Response.redirect "/artiklar/" & strRub
%>
```

i 404.asp skickar jag till testfilen open.asp som är orginalfilen fast där hämtar jag ut via Session("pid") och Session("artID")

Är det rätt? Måste nog ha med ID i länken för att kunna hämta ut det på en gång via att skriva URLén eller?

Hittar google detta sen på nå vis?

Permalänk: https://www.webforum.nu/p/1933903

## #11 — colione, 2007-02-09T19:34Z

```
Response Headers - [url]http://www.gruvsjo.com/artiklar/Barnsaekra-ditt-hem[/url]

Date: Fri, 09 Feb 2007 19:33:33 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 11138
Content-Type: text/html
Cache-Control: private

200 OK
```

är huvudet jag får..ser korrekt ut

Permalänk: https://www.webforum.nu/p/1933905

## #12 — colione, 2007-02-09T19:39Z

> **Asa skrev:**
>
> Men kan jag använda följande?
> 
> request.QueryString("pid")
> och 
> request.QueryString("artID")
> 
> pid är alltid med. Kan jag hämta ut det så istället med det du skrev ovan?

Vart skall du skicka med dessa?

Du kommer inte in i artikeln barnsaekra-ditt-hem dock.

kom ihåg att du måste kasta tillbaka ae -\> ä när du hämtar om det står med ä i databasen.

Permalänk: https://www.webforum.nu/p/1933909

## #13 — Asa, 2007-02-09T19:40Z

Okej, då är jag på rätt väg då :) Men måste nog ha pid och artID med i länken för att hitta artikeln. Var kollar du det där som du kollade ovan?

Permalänk: https://www.webforum.nu/p/1933910

## #14 — colione, 2007-02-09T19:47Z

När var och hur skickar du med dessa värden? Du kan ju nämigen inte skicka med dem när du gör en server.transfer. Därför du ska sätta sessioner.

Skriver längre sen..ska på bio med flickvännen nu.

Huvud informationen plockade jag med hjälp av developer toolbar i forefox via: Information -\> View Response Headers

Permalänk: https://www.webforum.nu/p/1933912

## #15 — Asa, 2007-02-09T19:48Z

Okej, tackar. Vi hörs förmodligen senare. Tack för allt. Men om man skriver in via denna på en gång då?

<http://www.gruvsjo.com/artiklar/5/87/Barnsaekra-ditt-hem>

Hur skall det då stå i 404.asp? Just nu har jag bara en detta:
\<%
server.transfer("/open.asp")
%\>

Permalänk: https://www.webforum.nu/p/1933913

## #16 — colione, 2007-02-10T10:43Z

Det är en lösning också, jag brukar dock vilja dölja idn så mycket som möjligt för slutanvändaren.

Men om vi gör på ditt sätt hade jag valt att låta 404.asp (den man träffar vid ex. gruvsjo.com/artiklar/artikel_namn/pID/artID):

- Fårga efter: Request.ServerVariables("QUERY_STRING")
- Parsea variabeln i vilken du har sparat query-stringen efter vilken "undermapp " (web, artiklar, script), samt vilka pID och artID du har. Då kan du skippa tt bry dig om vilket artikelnamn som skickas med.
- Du skickar dem till olika funktioner baserat på vilken undermapp du får. Gör en databas-fråga på pID och artID, plocka ut det nödvändiga och presentera det. Alternativt så plockar du ut pID och det andra idt från databasen, lägger det i sessioner och gör en server transfer till t.ex artiklar.asp eller script.asp

 

För att få bakåt- kompabilitet kan du låta ex vis web.asp göra följande:

databas-fråga efter titeln.

Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.grovsjo.com/web/"&titel_fråndatabas&"/"&pID&"/"&kursID

Genom att ha dem sist så vet du ju snabbt vad som ska hämtas, skickas det bara med en slash med nummer vet du att du är ute efter en pID osv.

Permalänk: https://www.webforum.nu/p/1934004

## #17 — Asa, 2007-02-10T13:11Z

Tackar så mycket allesammans :)

Permalänk: https://www.webforum.nu/p/1934042

---

Tråden på webben: https://www.webforum.nu/amne/asp/157004-hjälp-med-sökmotorvänlig-url
