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:

Abonneer aan dit blog via RSS of via e-mail, om op de hoogte te blijven van de meest recente ontwikkelingen. Volg mij op Twitter.

Relevante items
This entry was posted in Coderen and tagged . Bookmark the permalink.

Regels voor het plaatsen van reacties:

  • Gebruik je eigen naam, geen keywords
  • Het plaatsen van reclame in je reactie is niet toegestaan
  • Reacties moeten te allen tijde fatsoenlijk blijven

Reacties die hieraan niet voldoen worden of verwijderd of als spam aangevinkt. Hierover is er verder geen discussie mogelijk.

Leave a Reply

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

*

You may use these HTML tags and attributes: <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: