![]() ![]() ![]() ![]() |
||||||||||
<< Tilbage
URL RewritingHvad er det?Formålet med denne artikel er at beskrive hvordan får pænere url's på din hjemmeside vha. htaccess. De fleste benytter parameteroverførsel via adresselinjen (?id=5&...), metoden er umiddelbart ok men metoden har nogle ulemper. Her er et lille eksempel på hvordan en url kunne forbedres:minside.dk/?side=forum&forum=php&indlaeg=533 Vil kunne laves om til: minside.dk/forum/php/533 Det giver umiddelbart følgende fordele:
KravArtiklen her er baseret på apaches mod_rewrite modul. For det første kræver det at du overhovedet har adgang til at benytte htaccess på webserveren. For at kontrollere om du kan bruge htaccess, så opret en fil i roden af dit domæne der hedder ".htaccess". Det er vigtigt at den kun hedder det (ikke noget.htaccess). Tilføj følgende kode fil filen:ErrorDocument 404 "test Den laver en ny fejlside til dit domæne, så prøv at åbne en fil på dit domæne/server som ikke eksisterer (domain.dk/blahblahlb.html) og se hvad der sker. Hvis der står "test" på skærmen virker htaccess på din server og du kan gå videre med artiklen. IgangInden du går igang vil være en udmærket idé at have en smule kendskab til regulære udtryk (læs evt. artiklen her på siden).Har du endnu ikke oprettet .htaccess filen på serveren, så gør det nu. Las os lave det første simple eksempel:
Vi starter med at skrive RewriteEngine on som aktiverer selve mod_rewrite modulet. I linje 2 skriver vi RewriteRule som egentlig siger selv, vi laver en ny regel for omskrivning af url. Efterfølgende fortæller vi hvad det er der skal omskrives (som et regulært udtryk), og til sidst hvad der skal omskrives til. Eksemplet bevirker altså at når der står domain.dk/test.html i adresselinjen, så indlæser den i virkeligheden domain.dk/test.php Lad os gå et skridt videre:
Læg mærke til hvordan vi her udnytter parentesen til at hive et nummer ud. Et eksempel mere:
Jeg håber du har forstået princippet i det, for det er i virkeligheden ret simpelt. Hvis eksemplerne virker lidt som sort snak, så er det højst sansynlig fordi du bør læse artiklen om regulære udtryk Alternativ metodeI eksemplerne ovenfor har vi lavet en ny RewriteRule hver gang vi definere en ny type url. Nogle foretrækker ikke at sidde og arbejde i htaccess filen, men i stedet fra et php script. Htaccess filen kommer til at se sådan ud:
Her ryger alt ind på index.php. Dvs. man kan i princippet skrive hvilken som helst mappe efter domænenavnet (fx. domain.dk/blah/test/123/foo/), hvorefter den så læser index.php. I denne index php fil tager vi så først stilling til hvad brugeren har skrevet i adresselinjen. Der kan man f.eks. lave noget i retning af: Kode:
|