htmlで、共通ファイルをssiインクルードしているサイトがありました。
一部、日付判別でphpを使用することになりました。
html拡張子で、ssiとphpの共存(実行をすること)はできるのでしょうか?
ssiの許可とphpの許可
ssiインクルードしているサイトのhtaccessに、ssiの実行を許可する記述がありました。
Options +Includes
AddHandler server-parsed html
こちらにphpの実行を許可する記述を追記しました。
Options +Includes
AddHandler server-parsed html
AddHandler application/x-httpd-php .php .html
結果:phpの実行はうまくいったが、ssiインクルードが効かなくなりました。
ローカル環境はapache2.4.xだったので、ドキュメントを確認してみました。
https://httpd.apache.org/docs/2.4/ja/howto/ssi.html
すると、AddHandlerではなく、AddOutputFilterの例文がありました。
つまり、↓こうなります。
Options +Includes
AddOutputFilter INCLUDES .htm .html
AddHandler application/x-httpd-php .php .html
Apache2.x系では、「XBitHack on」の記述方法もありますね。以下の記述でうまくいくかもしれません。
ssiとphpのインクルードを両方使う
様々なサーバー環境がありますが、私の経験では以下の記述で解決することが多かったです。
Options +Includes
XBitHack on
AddHandler application/x-httpd-php .php .html
どれもうまくいかない時
どの記述方法もうまく行かない場合は、混在をあきらめてssiインクルードかphpインクルードか、どちらかを使います。
コメント