URL rewriting
Databankgestuurde websites zijn voor zoekmachines niet altijd even toegankelijk. Dit komt omdat de pagina's niet altijd "echt bestaan", zoals bij een statische HTML-site. Als je een klassieke website bouwt met HTML, dan staat er in de map op server voor elke pagina ook effectief een HTML-bestand.
Bij databankgestuurde websites is dit niet altijd het geval. Stel dat je een site hebt met een zoekformulier, dan wordt de HTML-pagina pas opgebouwd (met behulp van bijvoorbeeld PHP) op het moment dat een gebruiker een zoekterm intikt. Zoals je weet, vraag je dan niet enkel een "bestand" op, maar eveneens een "zoekterm" (query).
Bijvoorbeeld: zoek.php?q=hond
Met een .htaccess-bestand is het mogelijk om zulke "slechtogende" links om te zetten in een meer leesbare waargave.
Bijvoorbeeld: zoek/hond
De techniek om adressen te gaan "herschrijven" tot een meer leesbare weergave, noem je "URL REWRITING".
Een .htaccess-bestand maken
Je kan een .htaccess niet zonder meer offline aanmaken. Dit komt er immers op neer om een bestand te maken waarvan de naam begint met een ".". Op een Mac OS-systeem is dat enkel weggelegd voor "verborgen bestanden". Als je een .htaccess-bestand aanmaakt op een Mac, zal het m.a.w. niet meer te zien zijn.
Je kan het "offline" aanmaken door het bijvoorbeeld htaccess.txt te noemen. Je plaatst het vervolgens op FTP en je wijzigt daar de naam naar .htaccess.
Mogelijkheden
Met een .htaccess-bestand kan je heel wat bereiken naast URL rewriting:
- Je kan een bezoeker doorsturen naar een andere pagina
- Je kan een bepaalde map beveiligen met een wachtwoord zonder hiervoor PHP-code te moeten schrijven
- Gebruikers blokkeren op basis van een IP-adres
- Voorkomen dat een andere website foto's van jouw site "linkt"
- Foutdocumenten instellen (voor het geval er iets misloopt met PHP of met de server)
- ...
Risico's
Opgelet: Een .htaccess-bestand bewerken, is niet meteen weggelegd voor newbies. Een fout in dat bestand, kan je hele site doen vastlopen. Maar anderzijds kan je problemen ook snel oplossen door het bestand leeg te maken of het gewoon te verwijderen.
Voorbeelden
1. De extensie PHP verbergen
Als een pagina "contact.php" heet, bijvoorbeeld, dan kan je nu in je HTML-code nu <a href="contact">Ga naar contact</a> invoeren ipv <a href="contact.php">Ga naar contact</a>.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
2. Een map beveiligen met (een) wachtwoord(en)
Het is eveneens mogelijk om een map te beveiligen met wachtwoordtoegang.
Opgelet: Hiervoor moet je nog een tweede bestand aanmaken nl. .htpasswd
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile .htpasswd
Require valid-user
In het bestand .htpasswd bewaar je "waardenparen" (combinatie gebruikersnaam:wachtwoord). Het wachtwoord moet op een correcte manier versleuteld worden.
Een voorbeeld:
test:dGRkPurkuWmW2