Handige .htaccess scripts voor Hoasted hosting — redirects, SSL, PHP en WordPress

Met een .htaccess bestand kun je op serverniveau gedrag van je website aanpassen, zoals redirects, beveiliging en PHP-instellingen. Hieronder vind je veelgebruikte scripts met uitleg wanneer je ze gebruikt.


Belangrijk: maak altijd eerst een backup

Voordat je wijzigingen maakt:

  • Download je huidige .htaccess  bestand
  • Of maak een kopie (bijv. → .htaccess_backup)

Een fout in dit bestand kan je website namelijk direct onbereikbaar maken.


Waar vind je het .htaccess bestand?

Via cPanel:

  1. Ga naar cPanel
  2. Open File Manager
  3. Navigeer naar de map public_html
  4. Zorg dat Hidden Files (dotfiles) zichtbaar zijn

  1. Open of bewerk .htaccess

Redirecten van urls


Let op!: Hoe hoger in de .htacces, hoe eerder deze wordt uitgevoerd. Plak je custom regels dus ook bovenaan indien deze hogere prioriteit hebben.


1. Simpele 301 redirect (oude pagina → nieuwe pagina)

Gebruik dit als een URL permanent is gewijzigd (wijzigen van losse pagina’s of URL-structuren).

Redirect 301 /oldpage.html http://www.example.com/newpage.html
Redirect 301 /oldpage2.html http://www.example.com/folder/

Als deze niet werkt, controleer dan met de onderstaande website waar het mis gaat (plak de volledige .htaccess file en de niet werkende URL in de invulvelden): 

http://htaccess.madewithlove.be/


2. Redirects met speciale tekens

Speciale tekens zoals ? , # , %  kunnen problemen geven. In die gevallen voeg je NE toe aan het eind van de rewrite regel, bijvoorbeeld alle pagina's in de abc map.

RewriteRule ^abc\/(.+)$ http://www.example.com/index.php#first [L,R=301,NE]

3. Oud domein → nieuw domein

Redirect is ingesteld op domein dat verwijst van http://www.domeinoud.nl/voorbeeld.html , welke moet redirecten naar https://www.domein.nl/voorbeeld/. Gebruik onderstaande wanneer alle andere pagina's moeten uitkomen op de homepage van het nieuwe domein.nl.

RewriteEngine on
Options +FollowSymLinks
Redirect 301 /voorbeeld.html https://www.domein.nl/voorbeeld/
RewriteRule (.*) https://www.domein.nl/ [R=301,L]

Als er nog bezoek binnenkomt op oude domeinnaam

Om SEO-waarden en alle URL's goed door te linken gebruik je onderstaande redirect.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?ouddomein\.nl [NC]
RewriteRule ^(.*)$ http://www.nieuwdomein.nl/$1 [L,R=301,NC]

4. Non-www → www redirect

Als je wilt dat alle bezoekers op jouw www.domein.nl in plaats van op domein.nl uitkomen, gebruik dan in de .htaccess de volgende regels.

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

5. HTTP → HTTPS forceren

Zet in je .htaccess de volgende code bovenaan, hiermee forceer je de website om ingeladen te worden naar HTTPS, voor een beveiligde verbinding.

RewriteEngine on
RewriteRule ^.well-known - [L]
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

6. Domeinnaam wijziging

Indien je site blijft staan, maar moet luisteren naar een andere domeinnaam gebruik dan de volgende code in je .htaccess

RewriteEngine On
RewriteRule ^(.*)$ https://www.nieuwdomein.nl/$1 [L,R=301,NC]

7. HSTS beveiliging toevoegen

Deze line code voeg je toe voor extra beveiliging tegen man-in-the-middle aanvallen en een verbeterde score op internet.nl.

<IfModule mod_headers.c>     Header always set Strict-Transport-Security "max-age=31536000;includeSubDomains" </IfModule>

7. Redirect niet bestaande links of pagina's → index.php

Gebruik deze code indien je niet bestaande pagina's rechtstreeks wilt doorverwijzen naar de index.php.

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

9. PHP timeout tijdelijk verhogen

Gebruik deze code bij lange scripts, imports of migraties.

RewriteEngine On
RewriteRule  .* - [E=noabort:1, E=noconntimeout:1]

Let op: altijd weer verwijderen na gebruik.


9. Force HTTPS met HSTS forcering (combinatie)

Forceer je website naar de HTTPS-variant en activeer de HSTS-verbinding met de onderstaande code.

RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]


# Note: It’s also recommended to enable HTTP Strict Transport Security (HSTS)
# on your HTTPS website to help prevent man-in-the-middle attacks.
# See https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security
<IfModule mod_headers.c>
    # Remove "includeSubDomains" if you don't want to enforce HSTS on all subdomains
    Header always set Strict-Transport-Security "max-age=31536000;includeSubDomains"
</IfModule>

10. Tijdzone instellen

Voeg de volgende regel toe en wijzig de Region/Zone in bijvoorbeeld Europe/Amsterdam. 

php_value date.timezone 'Region/Zone'

Dit is ook aan te passen in cPanel → Software → Select PHP Version → Switch to PHP Options: date.timezone.

11. PHP memory limit verhogen

Plaats de volgende regel in de .htaccess en vervang de xxxM door het gewenste aantal Mb's. 

php_value memory_limit xxxM

Ook aan te passen in cPanel → Software → Select PHP Version → Switch to PHP Options: memory_limit

12. Bestandslijst / index zichtbaar maken

Plaats onderstaande snippet in de .htaccess file in de betreffende submap.

Options +Indexes

13. Alias domein → submap redirect

Om een domein dat als alias toegevoegd is door te sturen naar een map binnen het hoofddomein kun je onderstaande code gebruiken.

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule (.*) https://www.example2.com/submap/ [R=301,L]

Om een domein dat als alias is toegevoegd te tonen in een submap met dat domein, gebruik onderstaande.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domein.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domein.com$
RewriteCond %{REQUEST_URI} !submap/
RewriteRule (.*) /submap/$1 [L]

14. WordPress login tijdelijk blokkeren (brute force)

De meeste Brute Force aanvallen worden al tegengehouden door de Hoasted Imunify 360 firewall. Als de website aangevallen wordt (brute force op de inlogpagina) kun je zorgen dat de aanvaller een 403 forbidden krijgt. Neem in de .htaccess de volgende regel op:

RewriteRule wp-login.php - [L,F]

Let erop dat je die regel wel weer verwijderd indien de aanval gestopt is. Anders kun je zelf niet meer inloggen.


Debugging van .htaccess

Werkt een redirect niet zoals verwacht? Gebruik deze tool om je regels te testen:


Belangrijke tip

  • Regels bovenin het .htaccess  bestand hebben prioriteit
  • Plaats custom redirects dus altijd zo hoog mogelijk

Hulp nodig?

Kom je er niet uit of wil je dat we even meekijken? Neem gerust contact op met support@hoasted.com, we helpen je graag verder. Lever bij ons aan:

  • Wat je precies wilt instellen
  • Het domein waar het om gaat
  • De eventuele redirect die je graag wilt instellen

Heeft dit artikel je goed geholpen? Dank voor je feedback! Er is een probleem opgetreden bij het verzenden. Probeer opnieuw.