当BLOGは先月サーバー移転をし、URLが変わった。
Movabletypeのバーションは同じなのだが、移転を機にphp化も行っている。
旧BLOGも生きているため、同一記事が新旧両方のblogに存在する状況になっているが、検索エンジンでは相変わらず旧blogの記事がHITするケースが多い。
そこで、旧BLOGから新BLOGへhtaccessを使ってリダイレクトさせることを考えてみた。
(当然旧サーバー上の.htaccessです)
トップページだけのリダイレクトなら、.htaccessに下記の記述だけでよい。
Redirect permanent /mt5/guckie/index.html http://www.guckie.jp/mt5/lineage/index.php
ところが、検索エンジンでは個別記事が拾われているので、これでは不足。個別に作ったWEBページや月別アーカイブ&カテゴリーアーカイブをすべてリダイレクトさせる必要がある。
.htaccessでは正規表現も可能なので、正規表現で実現できないか考えたが、各記事のディレクトリ構造などがなかなか厄介で、諦め。
そこで、MT5のテンプレートのファイル生成機能を使って.htaccessを自動的に生成してみた。
デザイン→テンプレート→インデックステンプレートの作成
テンプレート名 = .htaccess
テンプレート内容
Redirect permanent <$MTBlogRelativeURL$>index.html <$MTBlogURL$>index.php
<MTArchiveList archive_type="Individual">
<MTEntries>Redirect permanent <$MTBlogRelativeURL$><$MTArchiveDate format="%Y/%m/"$><$MTEntryBasename$>.html http://www.guckie.jp/mt5/lineage/<$MTArchiveDate format="%Y/%m/"$><$MTEntryBasename$>.php</MTEntries>
</MTArchiveList>
<MTArchiveList archive_type="Category">
Redirect permanent <$MTBlogRelativeURL$><$MTSubCategoryPath$>/index.html http://www.guckie.jp/mt5/lineage/<$MTSubCategoryPath$>/index.php
</MTArchiveList>
<MTArchiveList archive_type="Monthly">
Redirect permanent <$MTBlogRelativeURL$><$MTArchiveDate format="%Y/%m/"$>index.html http://www.guckie.jp/mt5/lineage/<$MTArchiveDate format="%Y/%m/"$>index.php
</MTArchiveList>
テンプレート設定の出力ファイル名=.htaccess
MT5のエンコーディングと.htaccessのそれは大丈夫かとか気になりましたが、何とか成功。
これで.htaccessが生成されリダイレクトが行われるようになりました。
既に何らかの.htaccessをおいている場合には上書きされるのでご注意ください。
(私の場合は、テンプレートの出力ファイル名を.htaccess.redirectとして作成。作成後ダウンドードして既存の.htaccessと合体して再UPとやりました)
生成された.htaccessの内容。
Redirect permanent /mt5/guckie/index.html http://www.mtg.or.fm/mt5/guckie/index.php
Redirect permanent /mt5/guckie/2011/01/url.html http://www.guckie.jp/mt5/lineage/2011/01/url.php
Redirect permanent /mt5/guckie/2011/01/play_7.html http://www.guckie.jp/mt5/lineage/2011/01/play_7.php
Redirect permanent /mt5/guckie/2011/01/b-odgc.html http://www.guckie.jp/mt5/lineage/2011/01/b-odgc.php
Redirect permanent /mt5/guckie/2011/01/post_240.html http://www.guckie.jp/mt5/lineage/2011/01/post_240.php
Redirect permanent /mt5/guckie/2011/01/post_239.html http://www.guckie.jp/mt5/lineage/2011/01/post_239.php
Redirect permanent /mt5/guckie/2010/12/lv75_1.html http://www.guckie.jp/mt5/lineage/2010/12/lv75_1.php
Redirect permanent /mt5/guckie/2010/12/post_238.html http://www.guckie.jp/mt5/lineage/2010/12/post_238.php
Redirect permanent /mt5/guckie/2010/12/play_6.html http://www.guckie.jp/mt5/lineage/2010/12/play_6.php
以下略・・・・・延々と記事の数だけ記述されます。
しかし、
1.リダイレクトだとアクセス解析上、リファラーとかキーワードの抽出が出来なくなる(多分ですが)
2.Blog移転に伴いカテゴリアーカイブのディレクトリ構造が変わったためリダイレクトでエラーになる。
ということで、現状はTOPページのみリダイレクトする形にしてあります。
以上MT5のテンプレート、使い方によっては便利やん!!でした。
(当然旧サーバー上のhtaccessです)
ここだけ全角なのが気になって昼も眠れない…!
でーにっつさん、コメント有難う。
この一文だけ公開後慌てて追加したので、そのせいだ・・・
打ち終わった直後、全角だと思ったのですが、ま、いっかとw
さすが見逃さないなぁ・・・・・・
直してきます!
ご指摘ありがとうでしたぁ。
>昼も眠れない・・・・・・
またよろ。
はじめまして。
これを携帯から見た場合のみ、携帯サイトにリダイレクトする場合、
テンプレート内容のどこにユーザーエージェントの振り分けを記述すればよいでしょうか?
I様、コメント有難うございます。
上記の方法は、サイトのフォルダー構造と生成される各ページ名が同じ事を前提に、違うサーバーにリダイレクトさせています。
一般的に携帯表示用サイトはフォルダー構造やページ名が変わってしまうので上記の方法では無理かなと思います。
全ページ対応ではなく、トップページへのアクセス時に携帯だったら携帯サイトへ飛ばすということなら、MTのテンプレートではなくhtaccessを直接いじって、
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOCKET|UP\.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^$ /mobile/ [R]
な感じでどうでしょうか。
/mobile/部分が携帯用のコンテンツがあるフォルダー名に成ります。
htaccessの書き方はサーバーOSによって微妙に変わったり、I様のサーバー環境でモバイルサイトがどうなっているか不明なため、これ以上のご回答は難しいです。
htaccess redirectあたりでググっていただけると、参考になるサイトが多数でてきます。
今後ともよろしくです。