.htaccess gebruiken of toch niet?
Deze post gaat over het gebruik van de bekende .htaccess bestanden voor het regelen van toegang tot mappen of bestanden, het herschrijven van URL's en over de voor en nadelen van dit kleine bestandje.
Voordelen van .htaccess
.htaccess bestanden hebben een aantal voordelen. Vooral voor grote webhosting bedrijven is het makkelijk om te zorgen dat gebruikers zelf toegang kunnen regelen tot hun bestanden en/of de URL's laten herschrijven. In de Apache configuratie wordt ingesteld dat .htaccess bestanden gebruikt mogen worden en gelezen moeten worden.
Toegang
Ander voordeel van .htaccess bestanden is het regelen van de toegang. Er wordt een map aangemaakt op de webserver en daar worden privé-documenten in geplaatst: de map privé. Deze map is alleen toegankelijk voor mensen met een (van tevoren gedefinieerde) gebruikersnaam en wachtwoord en kunnen toegang krijgen tot deze map. Google komt er niet in, Bing ook niet dus alle bestanden zijn veilig.
Herschrijven
Waar .htaccess bestanden nog wel het meest voor gebruikt worden zijn toch het herschrijven van URL's.
Een voorbeeld van de WordPress .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>Elke keer wordt gecontroleerd of de module Rewrite ingeschakeld staat om vervolgens de regels daaronder uit te voeren. Werkt perfect en gebruikers kunnen in de meeste gevallen hun .htaccess bestand aanpassen als ze dat nodig vinden. Of een website is verhuist en de zoekmachines moeten weten dat het huidige adres vervalt en dat het nieuwe geïndexeerd moet worden. Het kan met .htaccess allemaal!
Nadelen van .htaccess
Het alom bekende spreekwoord "Elk voordeel heeft zijn nadeel" geldt ook voor de .htaccess bestanden. Voor waar de bestanden voor gebruikt worden is het ideaal: zelf toegang regelen, zelf URL's herschrijven en nog meer. Maar wat zijn die nadelen dan?
Performance
Hier komt het .htaccess bestand niet zo heel fijn om de hoek want het zorgt ervoor dat de webserver (Apache) flink wat extra werk moet verzetten bovenop de regels die in het bestand zelf staan. Het gebruik van .htaccess wordt zelfs door de Apache Foundation afgeraden als het mogelijk is.
.htaccess bestanden zorgen ervoor dat Apache alle regels uitvoert die binnen de map zelf van toepassing zijn EN alle mappen boven de map waarin de .htaccess staat doorzocht wordt op .htaccess bestanden.
Een voorbeeld
Het .htaccess bestand staat in de map /var/www/sites/www.mvandek.nl/wordpress
Wat Apache nu doet is de volgende mappen controleren
- /var/www/sites/www.mvandek.nl/.htaccess
- /var/www/sites/.htaccess/
- /var/www/.htaccess
- /var/.htaccess
- /.htaccess
In dit geval betekent dat dat Apache 5 keer moet controleren op .htaccess bestanden in hogere mappen. Dat is 5 keer toegang tot het bestandssysteem en de harde schijf.
Het andere nadeel aan alleen al het gebruiken van .htaccess bestanden is dat elke keer dat een pagina opgevraagd wordt het bestand ingelezen wordt en weer verwerkt wordt. Dat kost processortijd en kan eraan bijdragen dat de website traag reageert om dat de webserver nog steeds bezig is om alle mappen te controleren en het bestand te verwerken.
Veiligheid
Een ander gevaar met .htaccess bestanden is dat ze de instellingen van de webserver overrulen. .htaccess bestanden gaan boven de configuratie van de webserver en dit kan een groot gevaar zijn. De mate van vrijheid om de configuratie te gebruiken is in te stellen met AllowOverride.
Wat moet ik dan?
Dat is een hele goeie vraag. Als gebruiker bij een Webhostingbedrijf heb je (met uitzondering van een VPS) geen toegang tot de Apache configuratie. En juist met dit bestand kun je hele mooie dingen doen.
Door namelijk de inhoud van .htaccess bestanden in een VirtualHost-configuratie te plaatsen ben je in staat om:
- Je servers minder te belasten omdat niet alle bovenliggende mappen doorzocht hoeven te worden
- Je het gebruik van .htaccess bestanden uit te schakelen zodat Apache .htaccess bestanden niet hoeft te lezen en te verwerken.
- Je server minder kwetsbaar te maken vanwege mogelijke beveiligingsrisico's
Wat er namelijk gebeurt als je de .htaccess bestanden in een VirtualHost-configuratie zet is dat het 1 keer wordt ingeladen in het geheugen, tijdens het opstarten. Dit voorkomt het opnieuw verwerken van .htaccess bestanden bij het bezoek van een website. En de mogelijke beveiligingsrisico's te beperken.
Eerlijk toegegeven: voor webhostingbedrijven is dit laatste niet te doen. Simpelweg omdat het teveel werk is en je geen gebruikers aan je serverconfiguratie wil laten sleutelen. Maar voor thuisgebruikers met een eigen server of VPS is het ideaal. Minder belasting op de server, minder toegang tot de harde schijf, minder lang wachten voordat de website verwerkt wordt.
Gebruikte website voor dit artikel: Apache Tutorial: .htaccess files
Commentaren
Meld u aan om commentaar te geven.