WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   UrlRewriter.Net - erfarenheter? (https://www.wn.se/forum/showthread.php?t=1042201)

peterbf 2010-05-24 17:32

UrlRewriter.Net - erfarenheter?
 
Tjänare!

Hoppas allt är kung med er!


Jag har precis fått igång UrlRewriter.Net och lyckats testa med följande kod i Web.Config.

<rewriter>
<rewrite url="~/shop/clothes" to="~/Bank/BuyClothes.aspx" />
<rewrite url="~/shop/themes" to="~/Bank/BuyThemes.aspx" />
</rewriter>

Har nån några erfarenheter hur man använder QueryStrings för Id'n?

Idag har jag en massa URL'er som ser ut såhär:

www.sajten.com/bank/details.aspx?id=1

Ovanstående länk kan presentera Bill Clinton. Jag vill att den ska se ut:

www.sajten.com/bank/bill-clinton

Nån som har gjort nåt liknande förr?

Ciao!

fabian 2010-05-24 17:44

Jag har inte testat UrlRewriter.Net, men jag körde ISAPI_Rewrite förr och var mycket nöjd med det. Kan ju vara värt att kika på? Det är kompatibelt med modrewrite, och man skriver reglerna på samma sätt vilket gör att det är grymt lätt att hitta bra exempel mm. på nätet.

http://www.helicontech.com/isapi_rewrite/

StefanBergfeldt 2010-05-27 12:39

Du kan inte lista ut att Bill Clinton har Id=1

Du får antingen använda URLer som www.sajten.com/bank/bill-clinton-1 och hämta ut ettan och skicka vidare, annars får du skicka med "bill-clinton till http://www.sajten.com/bank/details.a...e=bill-clinton

Så här kan det se ut:
<add name="LangWQS" virtualUrl="([a-zA-Z\-]{2,5})/([a-zA-Z\-/_\d]+).aspx\?(.+)$" rewriteUrlParameter="IncludeQueryStringForRewrite" destinationUrl="/$2.aspx?$3" ignoreCase="true" />

tartareandesire 2010-05-27 13:01

Citat:

Ursprungligen postat av StefanBergfeldt (Inlägg 20356966)
Du kan inte lista ut att Bill Clinton har Id=1

Du får antingen använda URLer som www.sajten.com/bank/bill-clinton-1 och hämta ut ettan och skicka vidare, annars får du skicka med "bill-clinton till http://www.sajten.com/bank/details.a...e=bill-clinton

Så här kan det se ut:
<add name="LangWQS" virtualUrl="([a-zA-Z\-]{2,5})/([a-zA-Z\-/_\d]+).aspx\?(.+)$" rewriteUrlParameter="IncludeQueryStringForRewrite" destinationUrl="/$2.aspx?$3" ignoreCase="true" />

Jag tycker det är snyggare att köra helt utan det vanliga siffer-id:t i url:er. Det ser bättre ut i länkar och för besökaren samt att url:erna blir lite kortare, särskilt om man har många sidor / höga id-nummer.

fabian 2010-05-27 13:13

Jag skulle sätta en unik slug på varje sida, i detta fallet "bill-clinton" och sedan hämta den sida i databasen som har "bill-clinton" som slug. Likaväl som att du hämtar baserat på id kan du ju hämta sida baserat på slug.

StefanBergfeldt 2010-05-27 14:44

Att köra på Id har sina fördelar (även om det är snyggast utan)

1. Du behöver inte säkerställa att slug:en är unik, utan du har ett autonumber att förlita dig på
2. Att göra urval på Integer är snabbare än att göra det på text/varchar

Annars håller jag med om att det är snyggare utan siffrorna

tartareandesire 2010-05-27 17:18

Citat:

Ursprungligen postat av StefanBergfeldt (Inlägg 20356993)
Att köra på Id har sina fördelar (även om det är snyggast utan)

1. Du behöver inte säkerställa att slug:en är unik, utan du har ett autonumber att förlita dig på
2. Att göra urval på Integer är snabbare än att göra det på text/varchar

Annars håller jag med om att det är snyggare utan siffrorna

1. Det är ju ett icke-problem som oftast bara är en fördel

2. Såvida man inte har extremt många sidor så är det ingenting som besökaren märker av

Bjorne 2010-05-28 09:50

Citat:

Ursprungligen postat av StefanBergfeldt (Inlägg 20356993)
Att köra på Id har sina fördelar (även om det är snyggast utan)

2. Att göra urval på Integer är snabbare än att göra det på text/varchar

Annars håller jag med om att det är snyggare utan siffrorna

Hemligheten är att man sätter ett index på slug-kolumnen. Då går det exakt lika snabbt som om man använder en integer. Dock kräver det ju att koden är skriven så från början. Man kan inte bara slänga på rewrite rules och få till det.

StefanBergfeldt 2010-05-28 10:44

Bjorne, är du säker på det? Självklart är det bra (nödvändigt) med index, men är du säker på att det blir lika snabbt som index på en integer?

fabian 2010-05-28 11:36

Citat:

Ursprungligen postat av StefanBergfeldt (Inlägg 20357110)
Bjorne, är du säker på det? Självklart är det bra (nödvändigt) med index, men är du säker på att det blir lika snabbt som index på en integer?

Jag tror man skall ha en rätt saftig databas för att det skall räknas.

Testade att göra sökningar i en databas jag har. Ingen av sökningarna var cachad innan.

Att söka på slug tog 0.0008 sekunder.
Att söka på int tog 0.0007 sekunder.

Nu har jag iof bara ca 250 000 rader i databasen, men i den storleken gjorde det alltså mycket liten skillnad. Både int och slug är indexerade.


Alla tider är GMT +2. Klockan är nu 15:31.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson