webForumDet fria alternativet

användarvänliga länkar

HTML & CSSur HTML, XHTML & CSS

13 svar · 757 visningar · startad av Tonyboy

TonyboyMedlem sedan jan. 200554 inlägg
#1

Hej!

Jag skulle vilja omvandla länkar på en sida till användarvänliga länkar tex. http://www.minsida/produkter.asp till http://www.minsida/produkter/

Detta för att användare ska slippa få sina bokmärken förstörda ifall man exempelvis går över till ett annat skriptstråk iframtiden.

Jag har hört att detta är enklare att åstadkomma med Apache än IIS som min ISP använder.

Tack på förhand!

jarvkloMedlem sedan juli 20013 378 inlägg
#2

Well - det är enkelt att göra mha mod_rewrite på en Apache, men är du beredd att göra om strukturen på webbplatsen som du beskriver är det egentligen inga oöverstigliga problem i IIS heller...

Börja med att skapa en katalog för varje sida - döp dessa till samma namn som du har på sidorna dvs för /produkter.asp skapar du en katalog som heter /produkter/ och så vidare för samtliga sidor på din webbplats.

Därefter flyttar du dina filer ner sina nya kataloger med samma namn och döper om var och en av dem till default.asp efter kopieringen.
Dvs /produkter.asp blir t.ex. till slut /produkter/default.asp

Nu har du en webbplats där alla sidor ligger som "default.asp" i varsin egen katalog (eller underkatalog... man behöver inte lägga alla filer på rotnivån o m man inte vill ;) ) och som du alltså kan adressera med enbart katalognamnen oavsett om sidan t.ex. är default.html, default.asp eller index.php

Efter det har du lite städning att ta hand om så att dina trogna besökare känner igen sig och inte möts av felmeddelanden om saknade sidor, dvs du måste se till att alla de inkommande länkar till t.ex. /produkter.asp vidarebefordras till /produkter/ - men det kan du fixa med en variant av en "perfect 404 page" som beskrivs t.ex. i artikeln http://www.alistapart.com/articles/perfect404/ - dvs du skapar ett asp-script (som du lägger upp som felsida för feltyp 404) som tolkar angiven URL och omvandlar alla anrop på formen "/whatever.asp" till "/whatever/" och gör en redirect dit om den katalogen finns.

Och du - välkommen till wF :bire

TonyboyMedlem sedan jan. 200554 inlägg
#3

Tack för ett snabbt, bra och tydligt svar jarvklo!

TonyboyMedlem sedan jan. 200554 inlägg
#4

Jo det var en liten fråga till.

Hur vanligt är det att man använder sig av metoden med att skapa en mapp till respektive del som du beskrev ovan. FÖrst tyckte jag att det alternativet var omständigt men jag har funderat mer och mer på det och kommit fram till att det kanske inte alls är så tokigt, om inte annat så för framtiden.

Man får ju överväga fördelar med nackdelar och jag börjar tycka att fördelarna börjar blir fler och då är det ju ett tänkbart alternativ?

jarvkloMedlem sedan juli 20013 378 inlägg
#5

Hmm
Har ingen aning.

Men jag gissar att de flesta som fill ha det på det sättet kanske ändå väljer att hosta på Apache med mod_rewrite där det är så mycket enklare att få till via regler i konfigurationsfilen .htaccess.

exempel:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)$ /index.php?pagename=$1 [QSA,NC,L]

ser till att inkommande trafik till filer och kataloger som inte redan finns i filsystemet hamnar i index.php istället med anropsadressen i parametern pagename.

CompusaMedlem sedan jan. 20023 327 inlägg
#6

Om produkter består av flera filer, blir det inte omständigt då? Flera kataloger...

jarvkloMedlem sedan juli 20013 378 inlägg
#7

... kanske, men det finns väl inget som säger att du måste skriva alla dessa index.asp och skapa alla dessa kataloger för hand :birp

Alla val har konsekvenser - så också valet att använda "snygga URL:ar" såhär ;)

TonyboyMedlem sedan jan. 200554 inlägg
#8

Trevligt med denna diskussion om URL:er. Har inte lagt någon större vikt vid detta ämne tidigare förrän nu och nu lutar det lite åt att scripta med hjälp av mod_rewrite skulle vara det smidigaste alternativet än att skapa kataloger för filer.

Nu jobbar jag uteslutet med IIS/ASP och det finns en liknande modul till IIS som heter isapi_rewrite men min ISP säger att det blir för mycket processande för servern för att dom skulle installera den. Jag håller med om att det kan verka onödigt att varje sidanrop även skall processas genom denna modul. Visserligen börjar fler använda sig av detta men prestanda är alltid ett avgörande argument.

echoSweMedlem sedan nov. 20041 189 inlägg
#9

Det finns även mycket smidiga sätt att åstadkomma detta utan både PHP och apache som 'alla' verkar snacka om.

http://www.codeproject.com/aspnet/URLRewriter.asp
http://aspalliance.com/549
http://www.15seconds.com/issue/030522.htm
http://www.google.se/search?hl=sv&q="asp+.net"+rewrite&btnG=Google-sökning&meta=

Om du vågar ta steget, dvs.

//Henke

PS, dvs. EDIT (nu för tiden). Jarvklo - visste inte att du har den där XHTML sidan. Inte konstigt att du förespråkar det, hehe. Jag tänkte skicka ett mail till dig faktiskt och be dig hitta en annan bakgrund, för den du har ser allmänt osnygg ut faktiskt. :)

jarvkloMedlem sedan juli 20013 378 inlägg
#10

echoSwe skrev:

PS, dvs. EDIT (nu för tiden). Jarvklo - visste inte att du har den där XHTML sidan. Inte konstigt att du förespråkar det, hehe. Jag tänkte skicka ett mail till dig faktiskt och be dig hitta en annan bakgrund, för den du har ser allmänt osnygg ut faktiskt. :)

Nu hamnade vi lååååångt från ämnet på en gång, men du skulle sett den första versionen av den bakgrunden ;)

Har du fler kommentarer om mitt "hjärtebarn" så finns en tråd i "Kolla min hemsida" om den här

TonyboyMedlem sedan jan. 200554 inlägg
#11

Hej echoSwe!

Tack för dina länkar ovan, men desa var precis som vi pratat om innan modeuler exempelvis isapi_rewrite modeulen för IIS, vilet kräver att din ISP installerar denna och det vill dom gärna inte göra med anledning av det extra processande som det kräver. Dock verkade lösningen för .NET intressassant men jag jobbar än så länge med vanlig ASP.

TinwëlintMedlem sedan maj 2004451 inlägg
#12

jarvklo. Ditt apache-exempel löste mitt problem från den här tråden:
http://www.webforum.nu/showthread.php?s=&postid=979280

jarvkloMedlem sedan juli 20013 378 inlägg
#13

Kalas! - wF är fantastiskt :birp

PaceMedlem sedan juni 20019 024 inlägg
#14

jarvklo skrev:

... du måste se till att alla de inkommande länkar till t.ex. /produkter.asp vidarebefordras till /produkter/ - men det kan du fixa med en variant av en "perfect 404 page" som beskrivs t.ex. i artikeln http://www.alistapart.com/articles/perfect404/ - dvs du skapar ett asp-script (som du lägger upp som felsida för feltyp 404) som tolkar angiven URL och omvandlar alla anrop på formen "/whatever.asp" till "/whatever/" och gör en redirect dit om den katalogen finns.

Håller inte med om det.

Det är betydligt bättre att låta filerna ligga kvar och i stället instruera webbläsaren/sökmotorn att filen är flyttad (skicka statusmeddelandet "moved permanently" samt den nya adressen).

På så vis skickar man inga 404:or - vilket är bra både bland sina egna loggar och statistik, samt ur sökmotorernas perspektiv eftersom de bara ersätter den gamla med den nya. Annars blir det två URL:er, varav den ena saknas.

523 ms totalt · 3 externa anrop · v20260731065814-full.c74b5be1
519 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
397 ms — hämta tråd, inlägg och bilagor (db)