ASP.NET rewrite

Skrive om adresser  (mod_rewrite) med ASP.NET

Å bruke så kalte  “pretty urls” har allerede blitt vanligere, for å øke brukervennligheten i applikasjonene. Det kan også ha visse fordeler for hjemmesidens sjanser til god plassering i søkemotoren.

For våre UNIX-servere er det veldig lett å via mod_rewrite skrive om adressene, men de som foretrekker Windows og ASP.NET ha ikke samme mulighet å bruke mod_rewrite. Det finnes derimot et annet alternativ som er lett å bruke og krever ikke noen ekstra installasjon på serveren UrlRewriter.NET.

Hvordan bruker man  UrlRewriter.NET?

1. [Last ned] og pakk opp

2. Legg til en referanse til  Intelligencia.UrlRewriter.dll som du også burde plassere på din prosjekts “bin” katalog.

3. Åpne din web.config fil

4. Legg til følgende

<configSections>
<section
name="rewriter"
requirePermission="false"
type="Intelligencia.UrlRewriter.Configuration.
RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
</configSections>
<system.web>
<httpModules>
<add
type="Intelligencia.UrlRewriter.RewriterHttpModule,
Intelligencia.UrlRewriter"
name="UrlRewriter" />
</httpModules>
</system.web>

Du er nå klar for å skrive om adressene! Nedenfor følger noen eksempler.

Vår applikasjon er en netthandel som selger forskjellige typer media. I dag har vi en side som lister alle produkter i en kategori på følgende måte minnetthandel.no/produkter.aspx? kategori=dvd dette vil vi forkorte til minnetthandel.no/dvd.aspx

Åpne din web.config fil hvor du har lagt til UrlRewriter.NET  og legg til følgende regel:

 <rewriter>
<rewrite url="~/dvd.aspx" to="~/produkter.aspx?kategori=dvd" />
</rewriter>

Dette virker utmerket om man har en mindre mengde kategorier. Men om man har mange kategorier så blir det raskt tungvint å legge til hver nye kategori manuelt. Med hjelp av et regulært uttrykk kan vi generalisere regelen i eksempelet ovenfor.

<rewriter>
<rewrite url="~/shop/(.+).aspx" to="~/produkter.aspx?kategori=$1" />
</rewriter>

Dette eksempelet skriver om flere varianter av minnetthandel.no/shop/dvd.aspx til minnetthandel.se/produkter.aspx?kategori=dvd.

Perfekt, da kan vi vise de forskjellige kategoriene. Det vill være nyttig å kunne vise en sammensetting av vert enkelt produkt. Dette gjøres ved å utvide regelen ovenfor med et annet argument.

 

<rewriter>
<rewrite url="~/shop/(.+)/(.+).aspx" to="~/produkter.aspx?kategori=$1&produkt=$2" />
</rewriter>

På den måten kan dine kunder skrive f.eks minnetthandel.no/shop/dvd/terminator2.aspx som skrives om til minnetthandel.no/produkter.aspx?kategori=dvd&produkt=terminator2.

Det r selvfølgelig mulig å utvide eksempelet i all uendelighet om man kategoriserer sine produkter enda dypere.

Var denne artikkelen til hjelp?

Relaterte artikler