Apacheのmod_layoutは、htmlの<body>タグの直ぐ後か、</body>タグの直ぐ前に外部のhtml文を自動挿入してくれるモジュールです。 これを使うと、ページに共通のヘッダー部分やフッター部分を一つのhtmlにまとめておけば、個別のhtmlに書くことなく、Apacheが自動挿入してくれます。 機能的にはSSIに近いのですが、決まりきった場所への挿入なので、Webサーバーの負荷もあまり高くないようです。 mod_layoutのインストール mod_layoutのモジュールは、このサイト(TangentOrg->software() )からソースをダウンロードしてきて、コンパイルするだけです。 今回テストしたサーバーは、DebianパッケージでApacheをインストールしてあったので、mod_layoutもパッケージインストールするだけでOKでした。
# apt-get install libapache2-mod-layout Reading Package Lists... Done Building Dependency Tree... Done The following NEW packages will be installed: libapache2-mod-layout 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. Need to get 13.2kB of archives. After unpacking 44.0kB of additional disk space will be used. Get:1 ftp://ftp.jp.debian.org stable/main libapache2-mod-layout 4.0.1a-2.2 [13.2kB] Fetched 13.2kB in 3s (4408B/s) Selecting previously deselected package libapache2-mod-layout. (Reading database ... 15425 files and directories currently installed.) Unpacking libapache2-mod-layout (from .../libapache2-mod-layout_4.0.1a-2.2_i386.deb) ... Setting up libapache2-mod-layout (4.0.1a-2.2) ... # a2enmod layout Module layout installed; run /etc/init.d/apache2 force-reload to enable. # /etc/init.d/apache2 force-reload Forcing reload of web server: Apache2.
あとは.htaccessか、httpd.conf(パッケージの場合は/etc/apache2/sites-available/default)に、組み込むhtmlファイルを設定すれば、簡単に組み込まれます。
# vi .htaccess -----------------------------------------------------下記の行を追加 AddOutputFilter LAYOUT html htm →拡張子がhtmかhtmの場合に挿入される LayoutHeader /header.html LayoutFooter /footer.html 上記の例では、<body>タグ直下にheader.htmlの内容が、</body>直前にfooter.htmlの内容が自 動的に書き込まれます。 html文の挿入なので、挿入されるファイルには<body>部の中身だけを記述すればOKです。 AddOutputFilter LAYOUTの後には、挿入したいファイルの拡張子を並べます。 例えば、CGIやPHPにも挿入したい場合は、 AddOutputFilter LAYOUTの後に cgi php と記述すればいいわけです。 プログラムを挿入する mod_layoutは実行可能なスプリクトも挿入することが可能です。 その場合は、LayoutHeaderやLayoutFooterにスプリクト名を指定すればいいのですが、 挿入されるスプリクトには必ず、「Content-Type: text/html」が必要になります。 例えばPHPだと
header("Content-Type: text/html; charset=Shift_JIS"); といった感じです。 この方法で、アクセスカウンターなどは簡単にできますね。 |