URL-omskriving med IISs URL Rewrite-modul

Jeg skrev nylig om hvordan jeg bruker Apaches mod_rewrite-modul til å utføre URL-omskriving. I dag skal jeg gi deg en introduksjon til å gjøre det samme, men med IIS 'URL Rewrite-modul. Selv om ideene er de samme, er implementeringen av IIS GUI-drevet (selv om du selvfølgelig kan redigere konfigurasjonen), og har noen unike måter å gjøre ting på egen hånd.

Det første du trenger å gjøre er å installere URL Rewrite. Du kan laste ned den direkte, eller installere den via Web Platform Installer (Web PI). Når det er installert, vil du se et nytt "Url Rewrite" -ikon i IIS-administrasjonskonsollen ( figur A ).

Figur A: IIS Management Console med URL Rewrite lagt til

Du kan administrere URL-omskrivning på servernivå eller for individuelle nettsteder etter behov. Gjennom URL Rewrite-modulen vil du se "mønstre" brukt. Mønstrene er i en av tre modus: eksakt samsvar, jokertegn (der en stjerne brukes til å bety "hva som helst her" og blir fanget når det matches), og ECMAScript-regulære uttrykk, som er Perl-kompatible vanlige uttrykk.

Det er to regeltyper, inn- og utgående. Inngående regler ser på forespørselens nettadresser og endrer dem. Utgående regler inspiserer trafikken som er sendt ut, ser etter nettadresser i den, og skriv dem om nødvendig. Dette er flott når innholdet kan bruke en absolutt URL som ikke er det brukeren skal motta (spesielt praktisk i omvendte proxy-scenarier).

Noe av det fine med URL Rewrite er at den støtter en rekke forskjellige innebygde regler ( figur B) som gjør livet enkelt når du vil gjøre en vanlig omskriving. Den komplette listen over innebygde regler er:
  • Regel med omskrivingskart: lar deg definere et sett med stier og deres erstatninger som en enkel liste.
  • Be om blokkering: ikke tillat tilgang til en bane.
  • Brukervennlig URL: oppretter raskt regler for å kartlegge banesegmenter (atskilt med skråstreker) for å spørre strengene.
  • Reverse Proxy: lar den nåværende serveren omgjøre proxy til en annen.
  • Håndhev små URL-adresser: gjør at klienten alltid bruker små URL-adresser via en HTTP-status 301 ("Permanent") viderekobling.
  • Kanonisk domenenavn: bruker en HTTP status 301 ("Permanent") viderekobling for å sikre at klienter alltid bruker det spesifiserte domenenavnet.
  • Legg til eller fjern symbolet for etterfølgende skråstrek: vil enten alltid legge til eller fjerne alltid skråstreken i en URL-bane ved hjelp av en HTTP-status 301 ("Permanent") viderekobling.

Figur B: Å lage en regel lar deg velge en innebygd regel å starte fra

De innebygde reglene er gode, for mens de starter deg med skreddersydd veiviser der det er aktuelt, genererer de standard regler som du deretter kan finjustere eller endre etter behov.

Den brukervennlige URL-regelen er ganske populær for de som ikke har et system som gjør det automatisk. Du starter med å legge inn et eksempel på den "stygge" URL-en som nettstedet faktisk krever. I eksempelet mitt la jeg inn: "http://www.demosite.titaniumcrowbar.com/cms.aspx?cat=docs&id=13". Deretter ble jeg tilbudt fire foreslåtte eksempler på brukervennlige nettadresser, som hver fulgte et litt annet mønster for å oversette banesegmenter til parameterne for spørringsstreng. I rullegardinmenyen velger du hvilket eksempel du liker best, og det vil vise URL-matching og substitusjonsmønstre som regelen vil bruke. Når du har valgt en, er du selvfølgelig i stand til å redigere og finpusse den etter behov.

Figur C: Opprette en brukervennlig URL-regel
En annen av de innebygde reglene som jeg bruker ganske mye er omvendt proxy-regel. Igjen leder systemet deg gjennom en kompetent standardkonfigurasjon av det som kan være en veldig kompleks oppgave ( figur D ). Den har noen fine innebygde alternativer som du kan endre, for eksempel om HTTPS-svar alltid skal plasseres nær standard HTTP (for å redusere serverbelastning), og om du vil bruke en utgående regel for å maskere det interne servernavnet eller ikke. Jeg bruker ofte dette slik at jeg kan få en sentral server satt opp med virtuelle webverter på samme IP-adresse, og håndtere inngående forespørsler som skal gå til forskjellige interne servere.

Figur D: Opprette en omvendt proxy

Den endelige regelen jeg vil diskutere er omskrivingskartene. Disse lar deg lage en liste over nettadresser og oversette dem til erstatte URL-er. I seg selv er et omskrivningskart ubrukelig, det må brukes som en del av en større regel i stedet for eller i forbindelse med substitusjonsmønstrene. Hvor disse er spesielt nyttige etter min erfaring, er når du omarbeider eller omorganiserer et nettsted som bruker ikke-forutsigbare URL-er (for eksempel mange statiske HTML-sider). Ved å kombinere en viderekobling som bruker HTTP-status 301 ("Permanent") med et omskrivingskart, kan du skreddersy oversettelsene dine i situasjoner der regler ikke fungerer bra.

Når du har satt grunnleggende regel (eller brukt en tom regel), kan du redigere den etter behov. Regelredaktøren ( figur E ) bryter virkelig ting fint. Du starter med et regelnavn og URL-mønsteret som skal samsvare (eller ikke samsvarer). Derfra kan du legge til en rekke forhold, for eksempel å lete etter en bestemt streng i en parameter av URL, en servermiljøvariabel og mer. Du kan fortelle at den samsvarer med alle, eller samsvarer med noen av betingelsene. Hvis vilkårene ikke er oppfylt, utfører ikke regelen omskrivingen. Du kan også utføre erstatninger på servervariabler, noe som er flott for å håndheve visse oppførsler. Servervariablene omfatter en veldig stor liste over ting å jobbe med, inkludert omskrivningskartene du har opprettet. Deretter definerer du hva regelen faktisk skal gjøre: utfør en "omskriving" (som får serveren til å behandle forespørselen som om den omskrevne URL-en var det klienten ba om) eller en "omdirigering" som faktisk vil sende en omdirigert HTTP-statuskode ( får du velge hvilken) til klienten som de skal spørre om den nye nettadressen. Deretter definerer du mønsteret for selve omskrivingen. Endelig har du noen alternativer:
  • Legger til spørringsstrengen
  • Logger forespørselen
  • Kjører ikke flere regler når denne er ferdig

Figur E: Regelredaktøren

Med disse grunnleggende ingrediensene kan du lage omtrent hvilken som helst URL-omskrivingsoppskrift du trenger. Jeg har brukt URL omskriving for både enkle og komplekse oppgaver, og jeg har ikke blitt skuffet.

© Copyright 2020 | mobilegn.com