301 redirect van je 404 pagina

Een tijdje terug had ik de URL’s van deze site veranderd. Standaard zijn zien ze er zo uit:

domeinnaam/jaar/maand/dag/artikel-naam

Nu had ik dit dus een tijdje geleden veranderd naar:

domeinnaam/artikel-naam

Probleem is dat alle links die naar deze (oude) URL’s verwijzen, dood lopen. Hiervoor ga je dus je 404.php moeten aanpassen en de juiste URL’s met de hand erin verwerken, want standaard krijgen je gebruikers dan een 404 melding, terwijl de pagina’s wel bestaan.

Kopieer de onderstaande code en plak dat in je 404.php:

$redirect_301 = array(
'/2008/11/02/oude-pagina/' => '/2009/01/01/nieuwe-pagina/',
'/2009/11/02/oude-pagina/' => '/2009/01/21/nieuwe-pagina/',
'/2008/10/02/een-pagina/' => '/2009/01/02/nieuwe-pagina/'
);
$request = $_SERVER['REQUEST_URI'];
if (array_key_exists($_SERVER['REQUEST_URI'], $redirect_301)) {
header("HTTP/1.1 301 Moved Permanently");
header('Location: http://www.navinpoeran.com' . $redirect_301[$request] );
die();
}
get_header(); ?>

Om precies te weten welke pagina’s allemaal een 404 opleveren, kan je even kijken in GWT. Daar kan je de pagina’s zelf exporteren als een CSV etc. De URL dus even bijwerken in de code ;)

Bron:

If you enjoyed this post, make sure you subscribe to my RSS feed! Relevante items
This entry was posted in Coderen and tagged . Bookmark the permalink.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

De volgende HTML tags en attributen zijn toegestaan: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Anti-spam vraag: