「http://domain/・・・.cgi」へのアクセスを「http://domain/mt/・・・.cgi」にリダイレクトする

MTQに、以下のような質問があがっていました。

「http://domain/mt/」にMovable Typeをインストールしましたが、「http://domain/」でアクセスできるようにしたい

この質問にお答えします。

1.mod_aliasのRedirectMatchを使う

WebサーバーがApacheの場合、特定のディレクトリのページでリダイレクトを行うには、そのディレクトリの.htaccessファイルにリダイレクトの記述を書くことが多いです。
リダイレクトを行うApacheのモジュールとして、mod_aliasとmod_rewriteがあります。
簡単なリダイレクトなら、mod_aliasモジュールのRedirectやRedirectMatchで実現することができます。

ご質問の例だと、「http://domain/mt○○○.cgi」にアクセスがあった時に、「http://domain/mt/mt○○○.cgi」にリダイレクトするように設定すれば良いでしょう。
具体的な書き方は以下のようになります。
この.htaccessファイルを、「http://domain/」に対応するディレクトリにアップロードします。
URLのドメイン以下の部分が「/mt○○○.cgi」にマッチした時に(ただし、○○○には「/」は含まない)、「http://domain/mt/マッチしたアドレス」にリダイレクトします。
「http://domain」の部分は、実際のドメインに置き換えます(例:http://www.foo.com)

RedirectMatch ^/(mt[^/]*\.cgi.*) http://domain/mt/$1

なお、この書き方では、Webブラウザのアドレス欄には、リダイレクト後のアドレスが表示されます。
例えば、「http://domain/mt.cgi」にアクセスすると、アドレス欄には「http://domain/mt/mt.cgi」と表示されます。

2.mod_rewriteを使う

mod_rewriteはmod_aliasより高機能で、複雑なリダイレクトを行うことができます。
1.と同様のことをmod_rewriteの機能で行うなら、.htaccessファイルに以下のように書き、「http://domain/」に対応するディレクトリにアップロードします。

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/mt.*\.cgi
RewriteRule ^(mt[^/]*)\.cgi mt/$1.cgi [L]

この書き方では、Webブラウザのアドレス欄は、リダイレクト前のアドレスのままになります。
例えば、「http://domain/mt.cgi」にアクセスすると、アドレス欄は「http://domain/mt.cgi」のままで、内部的には「http://domain/mt/mt.cgi」にアクセスする形になります。

なお、この書き方をする場合、mt-config.cgiのCGIPathの行がインストール時のままだと、管理画面内での遷移先のアドレスが、リダイレクトのないアドレス(http://domain/mt/mt.cgi・・・)になります。
mt-config.cgiのCGIPathの行を以下のように書き換えると、管理画面内での遷移先のアドレスも、「http://domain/mt.cgi・・・」になります。

CGIPath /

ただし、レンタルサーバーの場合、mod_rewriteモジュールがインストールされていないこともあります。
その場合は、残念ながらこちらの方法を使うことはできません。