WordPress werkt na update niet meer op subdomeinen

De werking van subdomeinen is gewijzigd sinds versie 4.5 van WordPress. Voorheen kon je één WordPress installatie gebruiken op meerdere subdomeinen. Je kon www.wpwillem.nl en help.wpwillen.nl dus laten verwijzen naar dezelfde WordPress site. Sinds de update redirect WordPress de url help.wpwillem.nl naar www.wpwillem.nl.

Op het moment zijn er twee oplossingen voor dit probleem: een oude versie van het bestand ‘canonical.php’ terug zetten of door het ‘redirect_canonical’ filter.

De versie van ‘canonical.php’ in WordPress versie 4.4.2 werkt nog wel met subdomeinen. Je kunt de oude versie downloaden op de ‘Release Archive‘ pagina. Pak het zip of tar bestand uit en kopieer het bestand ‘wp-includes/canonical.php’ naar je WordPress installatie.

Wanneer je een beveiligingsplugin als WordFence gebruikt krijg je waarschijnlijk een waarschuwing over dit bestand. Deze kun je negeren.

Bij een volgende update zal het bestand ‘canonical.php’ weer vervangen worden. Je zult dit bestand dus bij iedere update moeten vervangen door de oudere versie.

De tweede optie is het ‘redirect_canonical’ filter. Voeg hiervoor onderstaande code toe aan functions.php in je thema:


function disable_canonical_redirect($redirect_url){
    if(<test subdomein>) {
		$redirect_url = false;
	}
	return $redirect_url;
}

add_filter('redirect_canonical', 'disable_canonical_redirect' );

De pseudo code <test subdomein> vervang je door code die bepaald of het subdomein wel of niet correct is. Dit kan iets heel eenvoudigs zijn als:

strpos($_SERVER['HTTP_HOST'], 'help.wpwillem.nl') !== false

Of een wat uitgebreidere en robustere test met url_parse.

Op de bugtracker van WordPress staat een ticket over dit probleem.

Leave a Reply

Your email address will not be published. Required fields are marked *