Op deze pagina ...
Sommige webhosts (en sommige Internet
Providers), waaronder LinkUp,
staan het gebruik van zogenaamde Frontpage Extensions of een .htaccess
bestand toe.
Ik heb Frontpage Extensions nog nooit
bekeken, maar dat komt eigenlijk omdat ik zelf een hekel heb aan
Frontpage als HTML editor. Ik gebruik liever Dreamweaver en EditPlus.
Ik gebruik dus het .htaccess bestand.
Wat kunnen we nu met het .htaccess
bestand?
Nou, we kunnen foutmeldingen op maat
maken, automatisch bezoekrs doorsturen, toegang regelen, etc.
Merk op: Als je een .htaccess
bestand aanmaakt in een subdirectory, dan over-ruled deze die van
de root EN deze geldt dan alleen voor de directory waar hij in staat.
Je kunt dus meerdere .htaccess bestanden maken (ieder in
een eigen directory).
Merk op: Frontpage
schijnt niet goed overweg te kunnen met het .htaccess
bestand.
Merk op: Niet iedere
server ondersteund het gebruik van .htaccess bestanden, informeer
er naar bij jouw provider!
Merk op: Bepaalde
servers verwachten dat je een pad absoluut opgeeft, dus http://www.jouwwebsite.nl/bla.htm
i.p.v. /bla.htm!
|
|
.htaccess file - Overzicht
Dit bestand, met z'n iet-wat vreemde naam, is (bij de
meeste servers) de sleutel om het meeste uit de server te halen. Eigenlijk
is de naam niet zo vreemd als je weet dat alle bestanden, onder Unix-achtige
systemen, verborgen bestanden zijn en dat 'ht' eigenlijk verwijst
naar 'HTTP', en dat access zoiets als 'toegang' wil zeggen.
De .htaccess file is eigenlijk een gewoon tekst
bestand met een paar instrcuties die ergens op de serv er staat (bij voorkeur
in de root van de website).
Toegange verbieden voor bepaalde
IP-adresen
Je kunt de toegang voor bepaalde IP-adressen blokeren.
Als je dus niet wilt dat iemand bij jouw website kan vanuit een bepaald
IP-adres, voeg dan het volgende toe aan de .htaccess file:
<Limit GET>
order allow,deny
deny from 123.456.789.0
deny from 123.45.67
allow from all
</Limit>
Deze ode blokeerd alle toegang van adres 123.456.789.0
en ieder adres dat met 128.45.67 begint. Verder kan iedereen bij jouw
website. Je kunt op die manier meerdere adressen blokeren.
Bepalen van de standaard pagina
De meeste servers dicteren dat index.html de standaard
pagina is. Dat wil zeggen dat als je http://www.weethet.nl intypt,
je automatisch naar http://www.weethet.nl/index.html gestuurd wordt.
Stel je wilt nu start.html als standaard
pagina. Je hoeft dan alleen maar de volgende regel aan het .htaccess
bestand toe te voegen:
DirectoryIndex start.html
Automatisch doorsturen van
bezoekers naar een andere pagina
Soms kan het nodig zijn een bezoeker door te sturen
naar een andere pagina (zie ook Automatisch
doorsturen in HTML).
Dit is vaak nodig na dat je een website hebt geherstructureerd,
of bestanden een andere naam hebt gegeven - zoals ik dat hier ook heb
gedaan - omdat je ineens ASP ging gebruiken of PHP.
Zonder automatisch
doorsturen, krijgt de bezoeker een 404 File Not Found Error foutmelding
omdat de pagina niet meer bestaat. Voor de bezoeker is dat niet echt
zinvol, het zou handiger zijn
als de bezoeker doorgestuurd werd naar de juiste pagina zodat men de
gewenste informatie kan vinden.
Link naar een bestand door sturen naar een ander bestand
Je kunt dit eenvoudig bewerkstelligen door de volgende
regel aan het .htaccess bestand toe te voegen:
Redirect /oldpage.htm /newdirectory/newpage.php
Je kunt zo veel bestanden toevoegen als je wilt, als
je het formaat maar in de gaten houdt. Ik heb deze truuk gebruikt voor
een juiste foutmelding waarbij de bezoeker te zien krijgt dat hij of zij
de bookmarks moet aanpassen, waarna ze automatisch doorgestuurd worden
naar de link die ze wilden bereiken. Klik
hier om een levensecht voorbeeld te zien.
Merk op: Bepaalde servers verwachten
dat je de nieuwe link absoluut opgeeft, dus /newdirectoyr/newpage.php
moet dan http://www.jouwwebsite.nl/newdirectory/newpage.php
zijn in het .htaccess bestand!
Links naar bestanden in een directory doorsturen naar
bestanden met dezelfde naam in een andere directory
Stel je hebt een directory /dutch/content,
maar je hebt alle bestanden in die directory verplaatst naar /blabla/textfiles.
Ook dit kun je met een simpele regel doorsturen:
Redirect /dutch/content/
http://www.weethet.nl/blabla/textfiles/
Iedere link waarin dus staat http://www.weethet.nl/dutch/content/,
wordt veranderd naar http//www.weethet.nl/blabla/textfiles/
Als voorbeeld;
je wilt de pagina http://www.weethet.nl/dutch/content/search.php openen.
De redirect maakt daar dan van http://www.weethet.nl/blabla/textfiles/search.php.
Links naar een bepaald bestand type doorsturen naar een ander bestandtype
OK, deze is wat moeilijker. Je wilt dat alles links naar b.v. ASP pagina's
(*.ASP) doorgestuurd worden naar PHP pagina's (*.PHP).
RedirectMatch (.*)\.asp$ http://www.weethet.nl$1.php
Hier worden dus alle links die naar een asp pagina
wijzen veranderd naar een php pagina.
In bovenstaande voorbeeld zijn de rode delen van belang. Hier staat
eigenlijk:
nul of meer willekeurige karakters (="(.*)\")
die op .asp (=".asp") eindigen aan het einde
van de regel (="$"), moeten wijzen naar
http://www.weethet.nl (="http://www.weethet.nl")
met daarachter geplakt de gevonden string minus de .asp extensie (="$1") met
daar weer achter geplakt de .php extensie (=".php").
Voorkomen dat iemand de .htaccess
file kan lezen
Het .htaccess staat normaal gesproken in de root
van jouw webbrowser en kan daarmee ook bekeken worden. Vaak is het echter
niet wenselijk dat men dit kan, zo kan men achterhalen wat verborgen is
en welke adressen geblokked wordt. Voeg het volgende toe aan de .htaccess
file zodat anderen dit niet kunnen lezen:
<Files .htaccess>
order allow,deny
deny from all
</Files>
Voorkomen dat iemand kan
linken naar jouw downloads
Het klinkt misschien wat kinderachtig om anderen te
beletten een link naar jouw downloads te laten maken, maar tegenwoordig
betaald men niet alleen voor de server-ruimte maar ook voor het verkeer
die men genereerd. Het kan dus wenselijk zijn dit onder controle te houden.
Deze uitleg refereert naar een aparte .htaccess
file in de download directory!
Voeg deze regels toe aan het .htaccess bestand
zodat men niet meer naar jouw downloads kan linken. Je kunt ze ook doorlinken
naar een aparte pagina:
AuthUserFile /dev/null
AuthGroupFile /dev/null
RewriteEngine On
RewriteCond %{HTTP_REFERER} !>http://www.example1.com [NC]
RewriteCond %{HTTP_REFERER} !>http://example1.com [NC]
RewriteCond %{HTTP_REFERER} !>http://www.example2.com [NC]
RewriteCond %{HTTP_REFERER} !>http://www.example3.com [NC]
RewriteCond %{HTTP_REFERER} !>http://123.123.123.123 [NC]
RewriteRule /* http://www.example.com/index.html [R,L]
"http://www.example1.com"
is de link vanwaar downloads kunnen plaats vinden.
Het nummer 123.123.123.123 is het IP adres
van jouw website.
"http://www.domain.com/page.htm" is de pagina
waar een externe downloader naar toe gestuurd wordt. Ben er zeker van
dat de syntax juist overgenomen wordt.
Dit script stop alle downloads vanuit een bepaalde directory.
Je moet een aparte directory maken voor downloadbare bestanden. Als je
dit bestand namelijk in de root directory plaatst, zal deze je automatisch
doorsturen naar de RewriteRule pagina.
Op maat gemaakte foutmeldingen
Ik denk dat je een dergelijke melding weleens gezien
hebt :
404 - File Not found
The requested URL /someone/mistyped/a/link.html was not found on
this server.
|
Misschien heb je er ok wel eens zo een gezien:
Oops! You've found a bad link!
You will be redirected automatically
to our main page.
|
Beide voorbeelden zijn een Error Documents. Het
bovenste voorbeeld is een standaard foutmelding (404 - File Not Found),
de onderste is een voorbeeld van wat je ervan zou kunnen maken. Je kunt
zelfs per directory een unieke foutmelding maken. Vaak is een dergelijke
pagina voorzien van een link naar de pagina waar de bezoeker vandaan kwam.
De meeste foutmeldingen van een webserver hebben een
vast nummer. Zo is bijvoorbeeld "Bestand niet gevonden" meestal
error nummer 404. (Lijst met fouten staat onderaan de pagina) Het specificeren
van een dergelijke foutmeldingspagina is niet moeilijk. Je voegt een zogenaamd
"ErrorDocument" toe, gevolgd door het 3 cijferige nummer en een
link naar de pagina die bij deze fout moet verschijnen (alleen een korte
tekst kan ook). Hier zie je drie manieren:
ErrorDocument 404 http://www.domain.com/404.html
ErrorDocument 401 /401.html
ErrorDocument 500 errors.php?error=500.html
Foutmeldingen Lijst
Nummer |
Beschrijving |
400
|
Verkeerd syntax |
401
|
Niet geautoriseerd |
402
|
Niet in gebruik |
403
|
Verboden |
404
|
Bestand niet gevonden |
|
|
Nummer |
Beschrijving |
500
|
Interne Server Fout |
501
|
Niet geimplemeteerd |
502
|
Server Overbelast |
503
|
Gateway Timeout |
Voorkom directory browsen
Soms kun je bij een website een directory browsen/doorkijken
als je gewoon de link + directorie naam opgeeft in de webbrowser. Dit
is in de meeste situaties niet wenselijk. Zet daarom in de .htaccess
file die in het begin van de website staat de regel:
Options Includes FollowSymLinks
|