「Apache」 SSI ( Server Side Includes ) を使ってみる

いままで知らなかったのですが、Web ページを動的に生成する技術として SSI ( Server Side Includes ) というのがあるみたいです。

・Server Side Includes - Wikipedia
http://ja.wikipedia.org/wiki/Server_Side_Includes

Apache HTTP Server ( Apache ) はこの SSI に対応しているみたいなので、簡単に動作確認してみました。

Apache チュートリアル: Server Side Includes 入門 - Apache HTTP サーバ バージョン 2.2
http://httpd.apache.org/docs/2.2/ja/howto/ssi.html

ドキュメントでは「1. AddOutputFilter ディレクティブ等々を使う方法」と「2. XBitHack ディレクティブ使う方法」の 2 つが紹介されてます。それぞれやってみました。

1 について


httpd.conf に以下の設定を追記する。

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
<Directory /var/www/html/ssi>
Options +Includes
</Directory>

※ Options はディレクトリに対して適用したほうがいいという記述があるので、今回は Directory ディレクトリ使って /var/www/html/ssi に適用されるようにしました。

/var/www/html/ssi に test.shtml を作成する。

<html>
<body>
exec : <!--#exec cmd="ls"-->
<br>
fsize : <!--#fsize file="test.shtml"-->
<br>
flastmod : <!--#flastmod file="test.shtml"-->
</body>
</html>

で test.shtml にアクセスすると、以下の内容が表示される。

exec : test.shtml 
fsize : 155 
flastmod : Wednesday, 08-Apr-2015 23:48:53 JST

ちなみに [an error occurred while processing this directive] な内容が出力される場合には、test.shtml で何かしら記述ミスなりしてる可能性がある。error.log に詳細な情報が出力されているかもなので、そちらを確認。

2 について


httpd.conf に以下の設定を追記する。

<Directory /var/www/html/XBitHack>
Options +Includes
XBitHack on
</Directory>

/var/www/html/XBitHack に test.html を作成する ( "test.shtml" の部分以外は 1 と同じ )

<html>
<body>
exec : <!--#exec cmd="ls"-->
<br>
fsize : <!--#fsize file="test.html"-->
<br>
flastmod : <!--#flastmod file="test.html"-->
</body>
</html>

test.html にアクセスすると、以下の内容が表示される。

exec : test.html 
fsize : 153 
flastmod : Thursday, 09-Apr-2015 00:16:43 JST

2 の方法では、特に .shtml しなくていいって感じですね。

以上です。

[ 環境情報 ]
CentOS 6.2
Apache HTTP Server 2.2.15