NucleusでのSEO対策としてFancyURLというものに移行してみようといろいろ調べてみました。
最終的にMagicalURL?という方式を採用しました。
手順はこんな感じです。

  • .htaccessへrewriteengine onやその他の記述を追加
  • 各種テンプレートのカテゴリやアイテムへのリンク先定義変更

参考までに調べた過程を記述します。
Nucleus付属のTips & Suggestionsには2種類の方法が記述されています。

  • FancyURLモード
  • mode_rewriteを利用する方法

直感的にFancyURLよりはapache側の制御であるmod_rewriteを利用した方がサーバに負荷が掛からないような気がしたので後者をメインに調査しました。


tips引用(.htaccess)

RewriteEngine On
RewriteRule ^archive-([0-9]+)-([0-9]+)-([0-9]+).html+ index.php?archive=$2-$3&blogid=$1
RewriteRule ^item-([0-9]+).html+ index.php?itemid=$1
RewriteRule ^archivelist-([a-z]+).html+ index.php?archivelist=$1

こんな感じにすることでアイテムに対するURLが*.htmlなり、ロボットからは静的コンテンツに見えるということです。

これで*.htmlへのアクセスは可能になった訳ですが、カテゴリの一覧やメインページ中に埋め込まれているリンク先を自動で*.html形式に置き換える方法はないのかな?と探したんですが、結局いろいろといじらないといけないことが判り断念しました。
※いじりすぎることによるバージョンアップ時の混乱を回避する為です。
今回は力業でテンプレート中のリンク記述を全て変更しました。全てといっても10箇所以内だと思います・・・

ポイントは

  • URLが*.htmlになるものはMagicalURLというらしい。つまりmod_rewriteを使ってる場合と解釈しました。
  • URLが『http://example.org/item/1234』の様になるものはFancyURL
  • FancyURLとMagicalURLを組み合わせることも可能らしい『http://example.org/item/1234.html』等
  • サーバ環境によっては.htaccessへの記述を変えないといけない

ちなみに私の場合、自宅環境ではtipsから引用した.htaccess記述でOKでしたが、レンタルサーバ上ではindex.php記述の前にスラッシュ"/"が必要でした。複数のブログを運用する場合は少しややこしくなると思います。


tips引用(.htaccess)
※index.phpの前にスラッシュを付与したもの。

RewriteEngine On
RewriteRule ^archive-([0-9]+)-([0-9]+)-([0-9]+).html+ /index.php?archive=$2-$3&blogid=$1
RewriteRule ^item-([0-9]+).html+ /index.php?itemid=$1
RewriteRule ^archivelist-([a-z]+).html+ /index.php?archivelist=$1

ちなみに多くのプラグインを導入している場合や、複数のブログを設置している場合は上記設定のみでは正しく動作しないはずです。
当サイトではNP_znMCListNP_Pickupを若干改造して利用させていただきました。ありがとうございます。