SSI有効化の設定とバーチャルドメイン固有の設定について
とある案件で、ヘッダやフッタのテンプレートが読み込まれていない現象が発生した。
原因はSSIが無効になっていることまではすぐにわかったのだが、
.htaccessの記述でつまずいた。
正解は
Options Includes
うーん、ググッて最初にコピったのが間違っていたのだが、情けない..
ちなみにSSIの設定等で参考になる記事はこちら
http://www.atmarkit.co.jp/flinux/rensai/apache07/apache07.html
で、どうせなら色々他にも調べてみようということで、借りているVPSの設定等を調べてみた。
そもそもバーチャルドメインで作成しているサイトの場合、.htaccessを使用せずにSSIの有効化をするような場合は、
httpd.conf内の~ディレクティブ以下に記述しなければならない。VPSの場合は、オリジナルのhttpd.confに変更を加えるというよりも、別のバーチャルドメイン専用のファイルに
変更を加えることが多い。あるVPSでは、
/var/www/vhosts/***/conf/httpd.includeに
~ディレクティブ以下に記述をし、httpd.confに認識させていた。別のVPSでは、
/usr/local/apache/conf/httpd.confに
対象ドメインノの~ディレクティブ以下に記述をしていた。
httpd.confに変更を加える形式の場合(上記の場合)の、SSIの設定を有効化する記述は、
当然
# To use server-parsed HTML files
#
AddType text/html .shtml
AddHandler server-parsed .shtml
<Directory /usr/local/apache/htdocs/>
Options Includes
</Directory>
になる。
————————
【追記】
拡張子 .html や .htm のファイルで SSI を有効にしたい場合は、対象のディレクトリ内に .htaccess ファイルを作成し、以下の記述をしていただくことで有効になる。
Apache1.3の場合
AddHandler server-parsed .shtml .html .htm
Apache2.xの場合
AddOutputFilter INCLUDES .shtml .html .htm