既存サイトのheaderとfooterをincludeさせようと思い、
拡張子htmlのままphpを動かす為、「お名前.com」サーバーにてhtaccessに
以下コードを追加した。
AddType application/x-httpd-php .php .html
しかし、できなかった。
当然のようにレンタルサーバーによって書き方が違う為、
上記記述では動かない場合があるのだ。
しかし久しぶりに案件でレンタルサーバーを触り、
失念してしまっていたので、忘れないように残しておく。
#対処法
まずは「お名前.com」のQ&Aには以下のような回答がある。
https://help.onamae.com/app/answers/detail/a_id/9096/
つまりCGIとしてPHPを動かす必要があるとのこと。
一生懸命ググって、以下の方法を見つけることが出来た。
①まず、「.htaccess」には以下のように書く。
Action myphp-cgi /php.cgi
#AddHandler myphp-cgi .html
<Files ~ "^index\.html?$">
AddHandler myphp-cgi .html .htm
</Files>
「.htaccess」がアップロードされていない場合はアップロード。
されている場合は記述を追加。パーミッションを「755」にする。
②次に、「php.cgi」というファイルを用意し、以下のように書く。
#! /usr/bin/bash
exec /usr/local/bin/php-cgi
「php.cgi」がアップロードされていない場合はアップロード。
パーミッションを「700」にする。
以上で動くはず。
私はこれでうまくいったが、
もしこれで動かなければ、改行コード、文字コードを
変えるといい、という情報があるので、その場合は以下のようにする。
- 「.htaccess」と「php.cgi」はSHIFT-JSのLF
- 「index.html」はUTF-8のLF
#ディレクトリを変える場合
ホームディレクトリではなく、色んなサイトをディレクトリ切って管理していて、
とあるディレクトリのみ対応させたい要件が出た。
つまり、
home
├ .htaccess
└ php.cgi
ではなく、
home
└ site
├ .htaccess
└ php.cgi
とする必要がある。
この場合、先程の「.htaccess」の記述を以下のように変える必要がある。
Action myphp-cgi /site/php.cgi ←ディレクトリを変える
#AddHandler myphp-cgi .html
<Files ~ "^index\.html?$">
AddHandler myphp-cgi .html .htm
</Files>
以上で、「site」ディレクトリ以下で拡張子「html」のままで
PHPが動き、headerとfooterがincludeできた。