Speaking URL's / Sigende URL'er
HejJeg sider lidt og overvejer hvordan man kunne lave en ASP.NET side, så den gør brug af "sigende URL'er" (find selv på bedre udtryk).
Det betyder at istedet for at kalde en side:
http://www.mydomain.dk/Article.aspx?id=myarticle&lang=dk
skal den hedde noget i stil med:
http://www.mydomain.dk/dk/article/myarticle
Den umidelbare løsning er at lave tilsvarende foldere, med hver sin "default.aspx" fil i, men er ikke specielt elegant til et site med dynamisk data/struktur.
Den anden tanke jeg havde var at lave en "Generic Handler", og lade den håndtere alle request, og derfra lave en "context.Server.Transfer("Article.aspx")". Dette gav umidelbart ikke pote.
Den 3. jeg overvejde var at få IIS'en til at sende httpkode 405 og 405 til en "handler.aspx", og den kan så lave en server.Transfer("Article.aspx"). IIS'en skriver dog stadig 404/405 koden i logfilen.
Ingen af ovenstående løsningerne er elegante, er der nogen andre der har løst/overvejet problemstillingen?
Nogen vil måske undre sig over hvorfor man i det hele taget vil gøre alt dette for en kosmetisk ting?.
Dels ser det pænere ud på sitet, og brugeren kan delvist navigere ud fra URL'en.
Den anden er at søgemaskiner muligvis ranker sigende URL'er højere (muligvis en and).
Om ikke andet så er det da en udfordring :P