Deze blog draaide eerst op het domein http://www.localjoost.nl/, en heb onlangs besloten deze te verplaatsen naar een subdomein onder het joostvanvelzen.net domein. Ik ben ook over gegaan van wordpress 2.8 naar 3.0.1.
Er zijn een aantal verschillende blogs over dit onderwerp online te vinden, waar deze je vooral helpt met de database goed krijgen. WordPress verplaatsen en aan de praat krijgen is geen groot probleem. Wat ik wel voor elkaar wou krijgen was om alle bestaande links op localjoost.nl goed door te sturen. Ik heb dit met een klein beetje htaccess & php snel voor elkaar gekregen.
De .htaccess die ik gebruik is deze:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L]
RewriteRule ^(.*)/? rewrite.php?q=$1 [L]
</IfModule>
Dit doet niets meer dan elke 404 doorsturen naar rewrite.php met de GET variabele ‘q’. In rewrite.php heb ik de volgende code gezet:
<?php
$newUrl = 'http://blog.joostvanvelzen.net/'.$_GET['q'];
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: '.$newUrl);
?>
Nu heb je een situatie waarbij een oude, bestaande URL: http://localjoost.nl/2010/browserkeuzescherm/ je doorstuurt naar: http://blog.joostvanvelzen.net/2010/browserkeuzescherm/.
Het voordeel van deze aanpak is dat bestaande links naar je oude blog omgeving goed doorgestuurd worden, en meteen even tegen de client vertelt dat de blog permanent is verhuisd. Dat laatste is vooral handig voor zoekmachines die daarmee hun index updaten. Nog een bijkomend voordeel is dat ook de RSS feeds blijven werken.
Hoe pakken jullie dit aan?