Skrevet av: GratisGuide.net
Nøkkelord: apache htaccess mod_rewrite rewritecond rewriterule adgangsbegrensing
En av de største utgiftene ved å drive et nettsted er utgiftene til båndbredde. Med båndbredde mener vi her overføring av filer fra nettjeneren du har ditt nettsted på til dine besøkendes nettlesere. I denne artikkelen skal vi konsentrere oss om Apache-modulen mod_rewrite sine muligheter til å hindre nedlasting av filer fra andre steder enn dine nettsider.
Har du plass på en gratis nettjener eller har plass på en nettjener som bruker en annen webserver enn Apache 1.3.x vil denne artikkelen ikke være så praktisk, men kanskje gi deg nyttig informasjon :o)
Webservereprogrammet Apache er et av de mest brukte på nettet i dag. Programvaren er gratis - det vil si såkalt «open source», med lisens. Programmet kommer med en rekke moduler, tilleggsprogrammer, og et utall av andre moduler som kan installeres. En av disse modulene er mod_rewrite som er en gullgruve av muligheter for en webmaster.
Du vil kanskje ha nytte av å lese mer om mod_rewrite hos Apache:
http://www.apache.org/docs/mod/mod_rewrite.html
http://www.apache.org/docs/misc/rewriteguide.html
Per har laget en morsom film lagret som en MPEG-fil på sin nettserver som huser nettstedet hans (www.per.no). Per sender en lenke til siden sin (www.per.no/film.html) til en kamerat som klikker på den og får opp nettsiden til Per med litt tekst, litt reklame (noe må jo finansiere nettstedet...) og lenker til andre deler av nettstedet. Kameraten til Per ser filmen, ler så han faller av stolen, kopierer lenken til filmen (www.per.no/film.mpeg) og ikke siden (www.per.no/film.html), og e-poster filmlenken til sine venner når han kommer seg opp igjen.
Vennene til Per sin kamerat klikker lenken de fikk tilsendt (www.per.no/film.mpeg) og får opp filmen til Per, men ikke siden. Uten reklame og det som værre er. Det samme skjer med dem - Per har tydeligvis laget en skikkelig morsom film - de e-poster lenken videre til enda flere som igjen ser filmen og ikke siden.
Problemet til Per her blir at mange bruker båndbredden hans uten at noen ser reklamen hans der de kan klikke seg videre til en e-butikk som selger videoredigeringsprogrammer slik at hvem som helst kan lage morsomme filmer for visning på nettet. Per betaler nettjenerleien og båndbredden sin med inntektene fra salget av programvaren.
GratisGuide.net kan ikke ta ansvar for feil, skader eller annet som måtte oppstå som følge av at du benytter fremgangsmåten som beskrevet under - med henblikk på bruk av og/eller endringer i .htaccess-filer. Du er selv ansvarlig for det du gjør.
For å benytte mod_rewrite som tenkt i denne artikkelen - vi bruker scenarioet vårt som eksempel - skal Per ha gjort følgende: Laget en egen mappe for filmen og siden som presenterer filmen og lagt filmen og siden som presenterer filmen i denne mappen.
Per lager en mappe kalt filmer og flytter filmen sin til denne mappen. Nettsiden er index.html. Lenkene i scenarioet ville nå blitt www.per.no/film/index.html for siden og www.per.no/film/film.mpeg for filmen.
Når dette er gjort er det en enkel sak å lage en .htaccess-fil som forteller webserveren (Apache) hvordan den skal behandle forespørsler om filer i den mappen.
.htaccess-filer er filer som forteller Apache hvordan den skal oppføre seg. Det er mye forskjellig som kan legges i en .htaccess-fil, noe kan du lese litt mer om i vår artikkel om å lage WML-sider.
Siden Per har laget en ny mappe har han ikke en .htaccess-fil i den fra før. Dersom du forsøker våre eksempler må du sjekke nøye at du ikke har en .htaccess-fil fra før. Har du det vil du sannsynligvis legge til informasjonen nedenfor i den eksisterende filen heller enn å skrive den over med en ny. Les forøvrig merknaden over. Vi anbefaler sterkt å opprette en ny mappe som det ikke finnes en .htaccess-fil i fra før!
mod_rewrite benytter det som på godt norsk kalles regular expressions. De som programmerer i Perl eller PHP er sikkert kjent med disse kraftige uttrykkene (!). Vi skal ikke gå for mye inn på de her. Du kan sjekke lenkene under Programmering og Perl/PHP i ressursdatabasen vår for mer informasjon.
Per har bestemt seg for å hindre folk i å se filmen hans uten å klikke seg til den fra siden hans. Per setter seg ned med en tekstbehandler (for eksempel Notepad) og skriver inn følgende:
1: # Eksempel på en .htaccess-fil
2: RewriteEngine on
3: RewriteCond %{HTTP_REFERER} http://.*bandbreddetyv.com/.*$
4: RewriteRule .*\.mpeg$ http://www.per.no/film/index.html
Per oppdaget at nettstedet bandbreddetyv.com har lagt ut en lenke til filmen hans og ikke siden hans. .htaccess-filen vår sender de som klikker film-lenken hos bandbreddetyv.com til film-siden hans i stedet for selve filmen. På filmsiden kan de gjerne klikke lenken til filmen.
Per har startet programdelen i linje 2, som er nødvendig for at Apache og mod_rewrite skal gjøre noe som helst. I linje 3 settes en betingelse: Dersom miljøvariabelen HTTP_REFERER inneholder bandbreddetyv.com skal etterfølgende regelsett følges. Regelsettet her består av en linje (4) som sier at henvendelser som ender med .mpeg skal henvises til http://www.per.no/film/index.html. Dette betyr at alle henvendelser som kommer fra bandbreddetyv.com for hvasomhelst.mpeg får siden på http://www.per.no/film/index.html.
Men det blir litt tungvint for Per om han for hvert nettsted som lenker til filmen hans skal legge til en linje i .htaccess-filen sin. Så han velger en annen mulighet.
1: # Eksempel på en .htaccess-fil
2: RewriteEngine on
3: RewriteCond %{HTTP_REFERER} !^$
4: RewriteCond %{HTTP_REFERER} !^$http://www.per.no/.*$ [NC]
5: RewriteCond %{HTTP_REFERER} !^$http://per.no/.*$ [NC]
6: RewriteCond %{HTTP_REFERER} !^$http://www.per.no:80/.*$ [NC]
7: RewriteCond %{HTTP_REFERER} !^$http://per.no:80/.*$ [NC]
8: RewriteCond %{HTTP_REFERER} !^$http://PERS_IP_ADRESSE/.*$ [NC]
9: RewriteCond %{HTTP_REFERER} !^$http://PERS_IP_ADRESSE:80/.*$ [NC]
10: RewriteRule .*\.mpeg$ http://www.per.no/film/index.html [R,L]
På linje 4 kommer flagget [NC] inn. Dette betyr at det ikke skal tas hensyn til hvorvidt det er store eller små bokstaver (no case).
I linje 10 kommer flaggene [R,L] inn. R betyr Redirect og forteller Apache at det skal videresendes til URL-en som er oppgitt. L betyr Last rule og forteller Apache at det ikke skal behandles flere Rewrite-regler.
Denne nye .htaccess-filen gjør at alle som ikke kommer fra Per sine sider, eller som kommer fra et sikkert nettsted eller et bokmerke (ingen HTTP_REFERER - ingen henviser (siden en kommer fra)) og ber om en .mpeg-fil blir videresendt til index.html - filmsiden.
Dersom variabelen HTTP_REFERER ikke er satt (linje 3), er noe annet enn Per sitt nettsteds URL (linje 4-7) eller ikke er Per sitt nettsted sin IP-adresse (linje 8-9) vil henvendelsen bli videresendt til filmsiden (linje 10).
Dermed har Per sørget for å hindre andre i å lenke direkte til filmen hans og sørget for at de må se nettsiden hans først.
Et problem som følger er de nettleserne som ikke angir henviser (altså lar Apache sette HTTP_REFERER-variabelen). De vil aldri kunne se filmen siden Apache med regelsettet i .htaccess-filen sender de uten HTTP_REFERER til filmsiden.
Når du lager .htaccess-filer er det viktig at du sørger for at de ikke har .txt som endelse. En .htaccess-fil heter akkurat det - punktum htaccess - og ikke noe mer eller mindre. Du må sørge for at filen du lager er i ASCII-format. Notepad (på PC med Windows) lagrer filer i dette formatet. Ikke bruk MS Word eller en annen ordbehandler. Jo enklere og simplere jo bedre.
Ønsker du å gjengi denne artikkelen eller noe fra den må du gjerne gjøre det, men ikke glem kildereferanse. For å lenke til denne artikkelen kan du bruke URL-en http://www.gratisguide.net/artikler/apache/hvordan-hindre-bandbredde-tyver.html.
Tilbake til Artikler / Apache web-server
GratisGuide.net
» Forsiden
» Om oss
» Nyhetsbrev
» Lage lenker til oss
» Opphavsrett
Nyhetsklipp
» Hovedside
» RSS-feeds
Artikler
» Hovedside
» Apache webserver
» Domenenavn
» Grafikk og clipart
» HTML og CSS
» Hjemmeside på 1-2-3
» Lage en basis-side
» Javascript
» MySQL
» PHP
» Søkemotorer
» WAP og WML
» Webdesign
Ressurs-databasen
» Hovedside
» Dmoz / ODP
» World/Norsk/
» Regional/.../Norway/
» Domeneavn/e-post
» Gjestebøker
» Grafikk
» Innhold/syndikert
» Juridisk/nettikette
» Lenke-/bannerbytte
» Programmeringsspråk
» HTML
» Javascript
» MySQL og SQL
» PHP
» WML-script
» Reklame/annonsering
» Søkemotorer/kataloger
» Statistikk/tellere
» Topplister
» Vedlikehold
» WAP og WML
» Webdesign-maler
» Webhotell
» Webmaster-forum
» Annet
Bokdatabasen
» Hovedside
» Databaser
» Handel og markedsføring
» Innholdsredigering
» Juridisk
» Programmering
» Programvare
» Websideutvikling
» Generelt
Kodeservice
» Hovedside
» Kodegeneratorer
» Dato
» Fylkesliste
» Meta-merke
» Rammesett
» Søkebokser
» Sprett-opp-vindu
» Stilark
» WML
Innholdstjenester
» Hovedside
» Diskusjonsforum
» IP-adresse
» Nyhetsoversikt
» Om dagen i dag