Upotreba tzv. „lepih URL-ova“ je sve češća u aplikacijama. Na našim UNIX serverima je vrlo jednostavno korišćenje mod_rewrite za rewrite URL-a, ali oni koji preferiraju Windows, i ASP.NET nemaju mogućnost da koriste mod_rewrite. Postoji jednostavna alternativa koja ne zahteva dodatne instalacije na serveru, to je UrlRewriter.NET.
Kako se koristi UrlRewriter.NET?
- Download i otpakuj
- Dodajte referencu na Intelligencia.UrlRewriter.dll koji treba da snimite u vaš „bin“ direktorijum.
- Otvorite Web.config fajl
- Dodajte sledeći kod
<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>
Sada možete da radite rewrite URL-a! Sledi nekoliko primera.
Naša aplikacija je web shop na kome se prodaju različiti mediji. U konkretnoj situaciji, imamo stranicu koja prikazuje sve proizvode u kategoriji kao: minwebshop.se / produkter.aspx? Category = dvd i to želimo da skratimo na minwebshop.se / dvd /.
Otvorite Web.config fajl u koji ste dodali UrlRewriter.NET i dodajte sledeće pravilo:
<rewriter> <rewrite url="~/dvd" to="~/produkter.aspx?kategori=dvd" /> </rewriter>
Ovo pravilo je korisno ukoliko imate malo broj kategorija. Ukoliko je veći broj kategorija, nije praktično svaku kategoriju editovati manuelno. Uz pomoć regular expression, možemo generalizovati prethodno pravilo.
<rewriter> <rewrite url="~/shop/(.+)" to="~/produkter.aspx?kategori=$1" /> </rewriter>
Ovo pravilo prikazuje sve varijante minwebshop.se / shop / dvd / za minwebshop.se / produkter.aspx? Category = dvd.
Tako možemo prikazati različite kategorije. Bilo bi korisno prikazati i proizvode kategorija. Proširićemo prethodno pravilo argumentom.
<rewriter> <rewrite url="~/shop/(.+)/(.+)" to="~/produkter.aspx?kategori=$1&produkt=$2"/> </rewriter>
Na taj način, kada korisnik ukuca na primer minwebshop.se/shop/dvd/terminator2 / upućuje se na minwebshop.se / produkter.aspx? category = dvd & product = terminator2.