✦ Oplossingen · Website & hosting

.htaccess-fout: 500 Internal Server Error na een wijziging

Na een aanpassing in .htaccess geeft je site een 500-fout? Een typfout, een niet-geladen module of een niet-toegestane instelling. Zo zoek je het uit en zet je de site terug.

Waarom gebeurt dit?

Apache leest .htaccess bij elke aanvraag. Staat er een regel in die Apache niet begrijpt of niet toestaat, dan geeft de hele map een 500-fout. In het error_log staat dan bijvoorbeeld Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration of php_value not allowed here.

Belangrijk: nginx leest .htaccess helemaal niet. Draait je site op nginx, dan hebben regels in .htaccess geen effect en moeten ze in de serverconfiguratie worden omgezet.

Zo los je het op, stap voor stap

Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.

  1. Zet de laatste wijziging terug

    Hernoem .htaccess tijdelijk (bijvoorbeeld naar .htaccess-test). Werkt de site dan weer, dan zit de fout in dat bestand.

  2. Lees het error_log

    Het log noemt de regel die Apache niet accepteert.

    sudo tail -n 30 /var/log/apache2/error.log
  3. Controleer of modules geladen zijn

    Rewrite-regels hebben mod_rewrite nodig, headers mod_headers. Op een eigen server zet je ze aan; omhul regels anders met IfModule.

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
  4. Verwijder php_value bij PHP-FPM

    php_value en php_flag werken alleen met mod_php. Bij PHP-FPM (CGI/FastCGI) geven ze een 500-fout; zet die instellingen in .user.ini.

  5. Controleer AllowOverride

    Op een eigen server bepaalt AllowOverride in de Apache-configuratie welke soorten regels .htaccess mag bevatten. Bij AllowOverride None worden ze genegeerd.

Lukt het niet? Wij helpen

Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.

Aanvraag

Hulp aanvragen

Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.

Veelgestelde vragen

Vragen over dit probleem

Hoe herstel ik de standaard .htaccess van WordPress?

Ga in het beheer naar Instellingen › Permalinks en klik op Opslaan. WordPress schrijft dan zijn eigen regels opnieuw, als het bestand schrijfbaar is.

Mijn redirects in .htaccess doen niets.

Mogelijk draait de site op nginx, of staat AllowOverride uit. Vraag de hoster hoe redirects ingesteld moeten worden.

Kan ik .htaccess testen zonder de site te breken?

Test wijzigingen op een testomgeving of in een submap. Houd altijd een kopie van de werkende versie bij de hand.