問題解決:MT 3.17と AdminCGIPath https+複数パス
Movable Type 3.17-ja, 3.17(3.16)-en_US では、App.pm を下記のように編集することにより、
mt.cfg
AdminCGIPath https://ss1.xrea.com/ユーザーID.s*.xrea.com/複数path/to/MT_DIR/mt.cgi
へのアクセスでは、
ScriptURI = ‘/ユーザーID.s*.xrea.com/複数path/to/MT_DIR/mt.cgi’ と正しくなります。
AdminCGIPath http://ユーザーID.s*.xrea.com/MT_DIR/mt.cgi
へのアクセスでは、
ScriptURI = ‘/MT_DIR/mt.cgi’
となります。
[MT]/lib/MT/App.pm の変更行
597行目あたりの サブルーチン sub app_path
if ($path =~ m!^https?://[^/]+(/?.*)$!i) {
$path = $1;
} elsif (!$path) {
$path = '/';
}
を下記のように変更します。
if ($path =~ m!^https?://[^/]+(/?.*)$!i) {
if ($ENV{REMOTE_ADDR} eq '192.168.1.xyz')
{ $path = '/ユーザーID.s*.xrea.com/複数path/to/MT_DIR/';}
else { $path = $1;}
} elsif (!$path) {
$path = '/';
}
Xrea.com さんのサーバでは、環境変数 HTTPS の on, off を取得できませんので、HTTPS によるアクセスは特定のローカル IP経由であることを利用し、環境変数 $ENV{REMOTE_ADDR}による条件文としました。サーバ名 (例: s150)には、ローカルなIPアドレスが設定されています (例: xyz=50であれば, 192.168.1.50) 。
注) ブログそのものは httpプロトコルで運用します。CGIPath, AdminCGIPath ともに https ではエラーが発生する可能性があります。