一昨日からの激しい腰痛が徐々に治まりつつあり、午後からゆっくりPCに向かって作業再開です。

現在、MT で構築しているサイトに、.htaccess を使って Basic認証 をかけたら、include文を設定している所に以下のようなエラーが出てページが正しく表示されません。

Warning: main(http://www.***.**/module/head.php) [function.main]: failed to open stream: HTTP request failed! HTTP/1.1 401 Authorization Required in /home/htdocs/***/public_html/index.php on line 5
Warning: main() [function.include]: Failed opening 'http://www.***.**/module/head.php' for inclusion (include_path='.:/usr/local/apache_2.2.4_php_4.4.7_mod_ssl/lib/php') in /home/htdocs/***/public_html/index.php on line 5

Basic認証を外すと正しく表示されます。一体なぜ??

今までこんなこと無かったし、サーバが変わったので何かサーバ側の問題では?と思い、問い合わせしようとメールを書きかけて、まてよ!? と気が付きました。

結論としては、include文で読み込む phpファイルの指定方法に問題がありました。

<?php include("<$MTBlogSitePath$>module/head.php"); ?>

と、フルパスで指定するところを、

<?php include("<$MTBlogURL$>module/head.php"); ?>

と、URL で指定していたためでした。

MT を php化する方法を解説してるサイトや書籍には、<$MTBlogURL$> と書かれている場合もあります。Basic認証を使わなければ <$MTBlogURL$> でも問題ないようですが、今回のエラーで <$MTBlogSitePath$> と指定した方が安全だということがわかりました。
#何故かはわかりませんが。