さて、nucleusからwordpressに引越しをしたわけですが、
なんといってもまずは(デザインもやりたいけれど)URLのリライトです。
こんなブログでも検索エンジンにインデックスされているページも結構あるし、
せっかく検索から来た人がコンテンツがない状態というのは、可哀想。
ということで、SEO的にもOKと言われている301リダイレクト(moved permanently)を利用して、
それぞれのページをリダイレクトすることにしました。
さくらのレンタルサーバ(スタンダード)を利用しているのですが、
これは.htaccessが利用できるとのことなので、.htaccessでやることにしました。
まず、URL体系なのですが、これまでnucleusを利用していた場合、
http://www.type5.org/blog/index.php?itemid=357
というURLで、index.phpにitemidというエントリごとにふられているパラメータを渡すことで個別のページの表示をしています。
一方、wordpressの場合デフォルトは
http://www.type5.org/wp/?p=123
になるのですが、「設定」-「パーマリンク設定」から
http://www.type5.org/wp/123
というパラメータ無しのURLに変更しています。
(なお、wordpressではデフォルトでブログディレクトリトップに.htaccessを生成し、
それを管理画面からかんたんに編集できるようです。すごいねえ)
移行の際に、上記のパラメータ(nucleus上のitemidとwordpress上のentryid)を合わせようかと思ったのですが、wordpressはいろんなアクティビティ別にこのIDを発行するらしく、あわせるのは結構面倒くさい。(パラメータが合っていれば、上位ディレクトリの書き換えだけで済むので楽ですが)
という訳で、ちょっと力技なのですが、よくアクセスのあるTOP20くらいのURLを個別に移行先のURLにリダイレクトする方法を選択しました。
www配下に.htaccessを作成して、以下のように追記しています。
Redirect permanent /blog/ http://www.type5.org/wp/
RewriteEngine on
RewriteBase /blog
RewriteCond %{QUERY_STRING} (^|&)itemid=457(&|$)
RewriteRule ^blog/index\.php$ /wp/466? [L,R=301]
・・・
まず、これまで/blogで運用していたものを/wpで運用しますので、
/blogあてにアクセスが来た場合は、すべて/wpにリダイレクトします。(これも301)
次にRewriteEngineを利用する設定、リライトするベースURLを設定。
次(4行目)に、パラメータでリダイレクトする場合単純にRewriteRuleでは条件が決めれないらしいので、RewriteCondを使います。条件を追記していきます。
%{QUERY_STRING}はパラメータ(?)を、(^|&)itemid=457(&|$)は?itemid=457ではじまり、&のパラメータでしか終わらないという意味です。
続いて、ルールです。^blog/index\.php$ は^は行頭、index\.phpは.がエスケープされているだけ、$は行末を意味します。つまり、blog/index.phpに上記のパラメータつきで来た場合、次の場所(/wp/466?)にリダイレクトという意味ですね。(ここの?は重要で、?が無いとパラメータが引き継がれてしまうらしいです)
このあたりを参考にしました。(hatenaで聞くとこだったわ。。。w)
http://blog.btmup.com/seo/htaccess-301-redirect-per-page.html
http://webtech.akijapan.com/htaccess/rewrite.phtml
http://webcre8.jp/investigate/tips-htaccess-redirect.html
http://q.hatena.ne.jp/1341680846 (これがドンズバの情報でした!)
というわけで、めでたく、引越し完了しました! enjoy!