Handige .htaccess tips en tricks

Geschreven door Kevin van der Peet. Posted in Blog

Met .htaccess-bestanden (hypertext toegang) kan je op een Apache web server eenvoudig informatie manipuleren (geen windows server).

Met .htaccess kunt u configuratie-instellingen toepassen zoals karakter set toekennen, mappen beveiligen, redirects instellen, ip adressen blokkeren, gepersonaliseerde error pagina’s instellen, hotlinken tegengaan en noem het maar op…

.

Met .htaccess-bestanden (hypertext toegang) kan je op een Apache web server eenvoudig informatie manipuleren (geen windows server).
Met .htaccess kunt u configuratie-instellingen toepassen zoals karakter set toekennen, mappen beveiligen, redirects instellen, ip adressen blokkeren, gepersonaliseerde error pagina’s instellen, hotlinken tegengaan en noem het maar op…

Hieronder staan een handige tips en tricks die u kunt toepassen op u eigen website.

 

Kies directory van index bestand

DirectoryIndex index.html index.php index.htm

Indien een verzoek van de gebruiker /web/, zal Apache verwijzen naar /web/index.html, of wat u ook heeft ingesteld.

 

Eigen Error Pagina’s

404 error:
ErrorDocument 404 errors/404.html

 

Algemene pagina voor alle http errors:
ErrorDocument 404 /psych/cgi-bin/error/error?404

Wil je voor elke error een aparte pagina maken? Maak dan gebruik van “ErrorDocument *** errors/***.html“ en vervang de sterretjes voor het volgende:

Code Omschrijving
400Verkeerde syntax
401Niet geauthoriseerd
402Niet in gebruik
403Verboden toegang
404Bestand niet gevonden
500Interne Server Fout
501Niet geïmplenteerd
502Server Overbelast
503Gateway Timeout

 

Directories beveiligen

Als je een bepaalde directory hebt die alleen bepaalde mensen mogen zien, kun je deze beveiligen met een gebruikersnaam en wachtwoord. Dit kan eenvoudig ingesteld worden in het .htaccess bestand.

AuthUserFile /usr/www/httpdocs/example/.htpasswd
AuthGroupFile /dev/null
AuthName "Beveiligd gedeelte"
AuthType Basic
require valid-user

Achter AuthName staat de titel van het loginscherm wat men tezien krijgt als ze deze directory in de url intypen.Verder wordt er in de eerste regel verwezen naar de locatie van een file met de naam .htpasswd. Hierin staat de user/pass combinaties die toegang verlenen tot de directory. Op deze website kan eenvoudig zo’n .htpasswd bestand aangemaakt worden.

 

Het wijzigen van de Omgevingsvariabele

Omgevingsvariabelen bevatten informatie gebruikt worden door server-side includes en CGI. In / uitschakeling omgevingsvariabelen met behulp van Setenv en UnSetEnv.

SetEnv SITE_WEBMASTER "KC Media"
SetEnv SITE_WEBMASTER_URI mailto:Dit e-mailadres wordt beveiligd tegen spambots. JavaScript dient ingeschakeld te zijn om het te bekijken.
UnSetEnv REMOTE_ADDR

 

301 Redirect met htaccess

Als u een pagina wilt doorsturen/rerouten van een oud document ofwel een oude url naar nieuwe kunt u gebruik maken van een 301 redirect.

Redirect 301
/oud/file.html http://jouwdomeinnaam.nl/nieuw/file.html

Wil je een gehele map redirecten naar een nieuw adres?

RedirectMatch 301 /blog(.*) http://jouwdomeinnaam.nl/$1

 

Redirect browser naar https (ssl)

Voeg volgende code op uw htaccess en omleiden gehele website naar https. Https wordt vaak toegepast als men gevoelige informatie gebruikt of invult op een pagina, zoals bij een betalingssysteem van een webshop.

RewriteEngine On
RewriteCond% {} HTTPS! Op
RewriteRule (.*) https://% {HTTP_HOST}% {} REQUEST_URI

 

Rewrite / Herschrijven URL's met behulp van .htacccess

Rewriting product.php?id=12 naar product-12.html

RewriteEngine on
RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1

 

Rewriting product.php?id=12 naar product/imac/12.html

RewriteEngine on
RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2

 

Redirecting van geen www voor de URL naar wel www voor de URL

RewriteEngine On
RewriteCond %{HTTP_HOST} ^ jouwdomeinnaam \.nl$
RewriteRule (.*) http://www. jouwdomeinnaam.nl/$1 [R=301,L]

 

Rewriting jouwdomeinnaam.nl/user.php?username=xyz naar jouwdomeinnaam.nl/xyz

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1

 

Voorkom Directory Listing

Wilt u niet dat de directory structuur wordt getoond als men bijvoorbeeld jouwdomeinnaam.nl/test intypt? Maak dan gebruik van het volgende.

Options –Indexes
of
IndexIgnore *

 

Veranderen van karakterset en Taal headers

AddDefaultCharset UTF-8
DefaultLanguage nl

 

Forceer het "Bestand Opslaan als" Prompt

AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4

 

IP ban

Order Deny,Allow
Deny from 12.34.56.7