WordPress 404 na verhuizing op alle pagina’s behalve de homepage: Apache, Nginx en wat je controleert
Werkt na een verhuizing van WordPress alleen de homepage en toont elke andere pagina een 404, dan is de inhoud meestal intact. Wat ontbreekt, zijn de regels die een mooi adres naar het juiste bericht vertalen. Op Apache en LiteSpeed regelt het bestand .htaccess dat, op Nginx de serverconfiguratie. Begin met de permalinks opnieuw opslaan en controleer dan de server.
Auteur: Het TellMyShop-team. Een gids voor eigenaren van WordPress-websites en WooCommerce-winkels: de oorzaak, de oplossing met de hand en hetzelfde werk in een gesprek met de chat.
Laatst bijgewerkt: · 7 min lezen
Zo weet je dat het om dit probleem gaat en niet om een gewone 404
Dit artikel gaat over één bepaalde situatie: alle pagina’s werken ineens niet meer, meestal direct na het verhuizen van de site naar een andere hostingpartij, het wijzigen van het domein of het terugzetten van een back-up. Losse adressen met een fout, bijvoorbeeld na het verwijderen van een bericht of het wijzigen van de permalink van één pagina, zijn een ander probleem. Dat beschrijven we in de handleiding over de 404-fout in WordPress.
Symptomen die bij een verhuizing passen:
| Symptoom | Wat het waarschijnlijk betekent |
|---|---|
| De homepage werkt, berichten, pagina’s en categorieën geven een 404 | geen herschrijfregels voor adressen op de server |
| Het dashboard /wp-admin werkt normaal | WordPress en de database zijn in orde |
| Een adres met /index.php/ in het midden opent het bericht | WordPress werkt, de server geeft mooie adressen niet door |
| De 404-melding ziet er anders uit dan de 404-pagina van het thema | de server geeft de fout zelf, voordat WordPress het verzoek krijgt |
| Links leiden naar het oude domein of een testadres | het oude adres staat nog in de instellingen van de site |
De laatste regel is het waard om apart te controleren. Leiden het menu en de links naar het oude adres, dan ligt het probleem in de instellingen van de site, niet in de serverregels.
Een reddingsplan stap voor stap
De stappen gaan van de eenvoudigste naar die je aan je hostingpartij overlaat. Controleer na elke stap één bericht en één pagina in een privévenster van de browser.
- Sla de permalinks opnieuw op. Ga naar Instellingen, Permalinks en klik op Wijzigingen opslaan zonder iets te wijzigen. WordPress bouwt de regels voor adressen opnieuw op en probeert ze naar .htaccess te schrijven. De documentatie over het scherm Permalinks beschrijft het scherm.
- Lees de melding na het opslaan. Toont WordPress een vak met regels om met de hand te plakken, dan kon het het bestand niet schrijven. Kopieer die regels voor je hostingpartij of plak ze zelf in via de bestandsbeheerder.
- Controleer het adres van de site. In Instellingen, Algemeen moeten de velden WordPress-adres en Siteadres het nieuwe domein en het juiste begin hebben (https of http, met of zonder www). Staan daar de oude adressen, wijzig ze dan niet blind, want je kunt de toegang tot het dashboard kwijtraken. Vraag het liever aan je websitebeheerder.
- Zoek uit op welke server de site draait. Apache of LiteSpeed: ga door naar stap 5. Nginx: stap 6.
- Apache en LiteSpeed: bekijk .htaccess. Zet in de bestandsbeheerder van de hosting, in de map van de site, het tonen van verborgen bestanden aan. De bestandsnaam begint met een punt, en bij kopiëren via FTP blijft hij vaak gewoon achter op de oude server. Hij hoort een blok te bevatten tussen de regels “# BEGIN WordPress” en “# END WordPress”.
- Nginx: vraag je hostingpartij om een WordPress-regel. Nginx leest geen .htaccess, en WordPress voegt de regels niet zelf toe. Schrijf je hostingpartij dat je een configuratie nodig hebt die niet-bestaande adressen doorgeeft aan index.php.
- Leeg de cache. Een cacheplugin of de cache van de hostingpartij kan nog een tijdje oude 404’s tonen, ook als de regels al werken.
Apache of Nginx: wie lost wat op
Het verschil tussen servers bepaalt of je het zelf redt of je hostingpartij moet schrijven.
Apache en LiteSpeed lezen het bestand .htaccess uit de map van de site. Staat het bestand er en heeft het het WordPress-blok, maar geven pagina’s nog steeds een 404, dan staat op de server misschien de herschrijfmodule uit of een instelling die zegt .htaccess te negeren. Dat zijn serverinstellingen, en die wijzigt je hostingpartij, niet jij.
Nginx heeft geen tegenhanger van .htaccess. De documentatie van WordPress over de configuratie van Nginx zegt duidelijk dat WordPress de configuratie van deze server niet zelf wijzigt, dus zonder handmatige regel komt index.php in de adressen. Je hostingpartij of de serverbeheerder voegt de regel toe. Veel hostingpartijen hebben in het paneel een kant-en-klaar WordPress-sjabloon dat je alleen hoeft aan te zetten.
Bij een installatie in een submap, bijvoorbeeld als de blog onder /blog/ staat, moeten de regels naar die submap wijzen. Dat is een veelvoorkomende valkuil na het verhuizen van een site van de hoofdmap naar een submap of andersom. Hetzelfde geval, met een precieze beschrijving van het symptoom “alles behalve de homepage”, staat ook in de handleiding van WebNots.
Wat je je hostingpartij in één e-mail kunt geven:
- het domein en het feit dat na de verhuizing alleen de homepage werkt,
- twee voorbeeldadressen die een 404 geven,
- of het adres met /index.php/ werkt,
- het WordPress-blok uit .htaccess, of het feit dat het bestand ontbreekt.
Zo helpt de chat de oorzaak te vinden
De TellMyShop-plugin voor WordPress en WooCommerce bewerkt het bestand .htaccess en de serverconfiguratie niet. Dat is een bewuste blokkade, en geen enkele schakelaar heft die op. Toch is hij handig voor een snelle diagnose zolang de verbinding met je chat (Claude of ChatGPT) werkt, en om na de oplossing te controleren of alles terug is. Kan de chat geen verbinding met de site maken, loop het reddingsplan dan met de hand door.
In het gratis TellMyShop Free opent de chat gekozen adressen zoals een browser dat doet en toont hij de responscode, en bekijkt hij de gezondheid van de website, het foutenlog en het 404-rapport. Binnen een paar minuten weet je of het probleem alle pagina’s raakt of maar een paar, en wat je precies aan je hostingpartij doorgeeft.
Jij: We zijn verhuisd naar een nieuwe hostingpartij en ik denk dat er iets kapot is. Controleer de pagina’s.
Je chat: Ik heb zes adressen gecontroleerd. De homepage antwoordt met code 200. Het bericht “Zo kies je een plantenbak”, de pagina Contact en de categorie Tips antwoorden met 404, en dezelfde inhoud opent met /index.php/ in het adres.
Je chat: Gezondheid van de website: Nginx-server. Conclusie: WordPress werkt, maar de regel die adressen aan index.php doorgeeft ontbreekt. Dat kan ik vanuit de plugin niet wijzigen. Ik heb een e-mail aan je hostingpartij opgesteld met de voorbeeldadressen.
Jij: De hostingpartij heeft de regel toegevoegd. Controleer opnieuw.
Je chat: Alle zes adressen antwoorden met code 200. Het 404-rapport voor het afgelopen uur heeft geen nieuwe meldingen.
De adressen en getallen in dit gesprek zijn ter illustratie. In TellMyShop Pro leest de chat de hele site, dus kan hij ook adressen in het menu en in links vergelijken met het nieuwe domein. De instellingen van de permalinks vanuit het gesprek wijzigen vraagt in Pro om de schakelaar Thema, die 24 uur geldt en een databaseback-up van vandaag vereist. Elke wijziging heeft een voorbeeld, wacht op jouw akkoord en kan ongedaan worden gemaakt vanuit de geschiedenis. De details staan op de pagina TellMyShop voor WordPress en WooCommerce, en de versies vergelijk je bij prijzen.
Na de oplossing: wat je controleert zodat Google niets kwijtraakt
Werken de pagina’s weer, dan blijven er drie dingen over.
Het eerste zijn de adressen. Zijn bij de verhuizing het domein of de structuur van de permalinks veranderd, dan hebben de oude adressen 301-redirects nodig, anders leiden links van andere sites en resultaten in Google nergens heen. Hoe je ze instelt, leggen we uit in de handleiding over de 301 redirect in WordPress.
Het tweede is de zichtbaarheid. Na een paar dagen met 404’s kunnen sommige pagina’s uit de resultaten zijn gevallen. Komen ze na de oplossing niet terug, zoek dan de oorzaken met de lijst in het artikel WordPress-site niet zichtbaar in Google.
Het derde is het rapport met 404-fouten. Kijk er de eerste dagen na de oplossing elke dag naar. Nieuwe meldingen tonen adressen waaraan niemand meer dacht, zoals oude links naar bestanden of categorieën die een andere naam kregen.
Responscodes, de gezondheid van de website en het 404-rapport controleer je in het gratis TellMyShop Free. Meer handleidingen vind je op de blog.
Vragen en antwoorden
Waarom werkt na een verhuizing alleen de homepage?
De homepage heeft geen herschrijfregels voor adressen nodig, pagina’s met mooie adressen wel. Heeft de nieuwe server geen bestand .htaccess, negeert hij het, of draait hij Nginx zonder regel voor WordPress, dan eindigt elk adres behalve de homepage in een 404-fout. De inhoud in de database is intact.
Helpt het opslaan van de permalinks altijd?
Het helpt als WordPress op een Apache-server zelf het bestand .htaccess kan schrijven. Op Nginx verandert deze stap niets op de server, want Nginx leest geen .htaccess. Dan moet je hostingpartij of wie de server configureert de regel toevoegen.
Hoe weet ik of ik Apache of Nginx heb?
Het makkelijkst is het je hostingpartij te vragen of de beschrijving van je pakket in het paneel te bekijken. WordPress toont ook serverinformatie onder Gereedschap, Sitestatus, op het tabblad Info, in het deel over de server. Hostingpartijen met LiteSpeed lezen .htaccess meestal net als Apache.
Pagina’s werken met /index.php/ in het adres. Wat betekent dat?
Het is een teken dat WordPress werkt, maar dat de server de mooie adressen niet aan WordPress doorgeeft. Een installatie op Nginx zonder WordPress-regel ziet er vaak zo uit. Zet de structuur van de permalinks niet blijvend op een structuur met index.php; vraag je hostingpartij de regel toe te voegen.
Moet ik na de oplossing redirects instellen?
Als de adressen niet zijn veranderd, nee. Google komt terug op dezelfde adressen en ziet de inhoud. Redirects zijn alleen nodig als bij de verhuizing het domein, de structuur van de permalinks of de adressen van sommige pagina’s zijn veranderd.
WordPress is een handelsmerk van de WordPress Foundation. WooCommerce is een handelsmerk van Automattic Inc. Claude is een handelsmerk van Anthropic PBC. ChatGPT en OpenAI zijn handelsmerken van OpenAI. TellMyShop is niet gelieerd aan deze bedrijven.