GMOサーバで拡張子htmlでPHPを動かす

この記事は次のブログに引っ越しました。

gmoserver.jpで拡張子がhtmlのファイルをPHPとして動かす ".htaccess"と"php.cgi"を作成する ".htaccess"の中身 文字コードS-JIS, 改行コード:LF, パーミッション:604 Action myphp-cgi /php.cgi AddHandler myphp-cgi .html "php.cgi"の中身 文字コードS-JIS, 改行コード:LF, パーミッション:705 #! /usr/bin/bash exec /usr/local/bin/php-cgi ■参考文献 ・拡張子htmlをPHPで実行する方法 - お名前.com共用サーバーSD - 所感 お名前.comなどのGMOのWEBサーバーで、HTMLファイルにPHPの"include()"を使って全ページ共通のフッター(外部ファイル)を埋め込む必要がありました。 問題は、大量に作られた静的HTMLファイルの拡張子が".html"であったことと、すでに".html"の拡張子で外部メディアや、Googleページランクにあがってしまっていたため、マクロなどで拡張子を".php"に変更できなかったことです。 となると、一般的に".htaccess"に記述すれば一発なのですが、どうもうまくいかない。 調べてみると、多いのは「cgiとして動かす」という情報。でも、全てのファイルの文頭に"#! /usr/local/bin/php-cgi"といったCGIならではの記述を追加しないといけない。 ファイルの数が数なので、なんとかできないかなぁと思っていたところ、「拡張子htmlの場合、PHPとして実行するCGIにハンドルを渡す」という目からウロコな方法を発見。 最初、ハンドルを受け取る"php.cgi"のパーミッション(アクセス権)を"705"にしていなかったので、サイトにアクセスすると"500"エラーが出たのですが、修正してバッチリ動作しました。