しかし、Movable Type の 3.3 以降のバージョンでは、CGIPathのホスト名を省略することで、各ブログのブログURLのホスト名部分をもとにしたリンクをCGIPathとして出力させることが可能となっています。
この機能を利用して、作成したブログをあたらしい独自ドメインで公開する際に、トラックバックURLなどをその独自ドメイン以下のURLとして公開することが出来ます。
ただし一つ条件があって、独自ドメインで公開する際のCGIのURLと、本来のCGIのURLが、ホスト名以下の部分で一致している必要があります。これをクリアするためにはいくつかの方法があるかと思いますが、自分が使っているXREAさんで、シンボリックリンクを使った設定が上手く行ったので紹介します。例として、XREAでのユーザー名が「chicken」として、現在以下のURLで、インストールしたMTの管理画面にアクセスしているものとします。
http://www.chicken.com/cgi-bin/mt/mt.cgi
すると、MTをインストールしたディレクトリのサーバー内でのパスは以下のようになるかと思います。
/virtual/chicken/public_html/cgi-bin/mt/
そして、同じMT上で新しく作るブログを、独自ドメインを利用した以下のURLで公開するとしましょう。
http://blog.thecat.net/
上記がサイトURLなら、サイト・パスは以下のサーバー内のパスを指定することになると思います。
/virtual/chicken/public_html/blog.thecat.net/
目的は、「/virtual/chicken/public_html/cgi-bin/mt/」以下に設置されているCGIスクリプトに、「http://blog.thecat.net/」以下のアドレスでアクセスできるようにすることです。さらに、MTの仕様上の要求から、ホスト名以下のパスが同一である必要があります。
つまり、
「http://www.chicken.com/cgi-bin/mt/」
と、
「http://blog.thecat.net/cgi-bin/mt/」
のふたつのURLで、どちらにアクセスしても同じCGIファイルが公開されていれば良いわけです。
今回はシンボリック・リンクを使ってみます。(自分がお借りしてるs160サーバーで動作確認したところでは、幸いApacheの設定でのFollowSymLinkが有効になっているようでした。)
あらかじめ、FTPクライアントなどで「/virtual/chicken/public_html/blog.thecat.net/cgi-bin」ディレクトリを作成しておきます。中身は空っぽでよいです。
次にXREAのサイト内のコントロール・パネルから「ホスト情報登録」を選択して許可を得た上で、SSHでログインしてください。
作成した「/virtual/chicken/public_html/blog.thecat.net/cgi-bin」ディレクトリに移動します。
cd /virtual/chicken/public_html/blog.thecat.net/cgi-bin
そして、シンボリックリンクによって「/virtual/chicken/public_html/blog.thecat.net/cgi-bin/mt」へのアクセスが、MTのインストールディレクトリに繋がるように、以下のコマンドを実行してシンボリックリンクを作成します。
ln -s /virtual/chicken/public_html/cgi-bin/mt mt
確認のため、ブラウザで「http://blog.thecat.net/cgi-bin/mt/mt.cgi」にアクセスしてみて、管理画面が表示されれば成功です。
第二段階です。目的のブログで、ブログ独自のホスト名でCGIを公開するために、mt-config.cgiの以下の箇所を書き換えます。現在のCGIPath
CGIPath http://www.chicken.com/cgi-bin/mt/
を、ホスト名を省略した以下の形に書き換えてアップロードしてください。
CGIPath /cgi-bin/mt/
最後に、目的のブログを再構築すれば完成です。
念のため、再構築したブログのエントリーアーカイブに移動して、トラックバックURLを確認してください。
http://blog.thecat.net/cgi-bin/mt/mt-tb.cgi/1
上記のように、独自ドメインに変わっているでしょうか。変わっていたら、このURLをブラウザのアドレス欄にコピペして、CGIに実際にアクセスできるか確認してください。
<response>
<error>1</error>
<message>トラックバックの送信は、HTTP POSTメソッドを使う必要があります。</message>
</response>
こんな感じのXMLでのエラーが表示されれば、CGIにアクセスできている証拠です。大成功です!
お疲れ様でした!