Home > Apache | サーバー(Debian) > Apacheのモジュールmod_layoutでHTMLの自動挿入

Apacheのモジュールmod_layoutでHTMLの自動挿入

Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録 このエントリーを含むはてなブックマーク

mod_layoutを使用してみましたので備忘録です。

mod_layoutとは、ページの一番上や一番下に指定した文字列(ページ)を埋め込む事ができるモジュールです。
よく「無料レンタルサーバー」とかを利用するとページのヘッダーやフッター部分に自動的に広告が挿入されますが、まさにそれを実現するモジュールです。



それぞれのファイルには変更を加えず、出力する際に挿入されます。
具体的にはページの<body>の直後と</body>の直前に挿入されるようです。

インストール

Tangent Software: mod_layoutのページよりソースをダウンロードしてきて展開します。
今回Apacheが2.2だったのでApache2.2用のソースをダウンロードしてきました。

cd /usr/local/src
wget http://download.tangent.org/mod_layout-5.1.tar.gz
tar zxvf mod_layout-5.1.tar.gz
cd mod_layout-5.1


Makefileを編集します。
APXS= と APACHECTL= の部分を以下のように編集
(/usr/local/apache2/にApacheがインストールされている場合)

vi Makefile
 
↓以下のように編集
 
APXS=/usr/local/apache2/bin/apxs
APACHECTL=/usr/local/apache2/bin/apachectl


あとはmakeしてインストール。
makeの際にエラーがないか確認して下さい

make
make install


その後、Apacheを再起動します。

/usr/local/apache2/bin/apachectl restart


インストールを行うとhttpd.confへ

LoadModule layout_module      modules/mod_layout.so


という行が追加されていると思うので確認して下さい。

設定

まず挿入したい文章を用意しましょう。

ここでは例としてheader.htmlとfooter.htmlを
/usr/local/apache2/htdocs/layout
に作成してみました。

このファイルへは<body>などの記述はしないでOKです。

header.htmlの内容

<p>Header Test</p>


footer.htmlの内容

<p>Footer Test<p>


次にhttpd.confへ以下を追加し、ヘッダーとフッターに挿入するものとして
header.htmlやfooter.htmlを指定します。
ちなみに.htaccessでも可能です。

vi /usr/local/apache2/conf/httpd.conf
 
(適当な場所に追加)
 
<Directory "/home/xxxxx/public_html">
Options FollowSymLinks ExecCGI
AllowOverride All
Order deny,allow
Allow from all
AddOutputFilterByType LAYOUT text/html
LayoutHeader /usr/local/apache2/htdocs/layout/header.html
LayoutFooter /usr/local/apache2/htdocs/layout/footer.html
</Directory>


もちろん編集したらApacheを再起動しましょう。

AddOutputFilterByType
text/htmlとして返ってくるファイルにheader.htmlをheaderに挿入し、footer.htmlをfooterに挿入するようになります。
ここではByTypeと指定しましたが拡張子単位での指定も可能です。

AddOutputFilter LAYOUT html htm cgi php



とすると拡張子html htm cgi phpのものを挿入する対象とします。

LayoutHeader
ヘッダーとして<body>の後に挿入するものを指定しています。

LayoutHeader
ヘッダーとして</body>の前に挿入するものを指定しています。

こんな感じで表示できました。
modlayout
もちろんフッター部分にも表示されております。

既知の問題

挿入される側がCGIやPHPのファイルだった場合に予期せぬ動作となってしまう事がありますので
実際に安全に使用するなら

AddOutputFilter LAYOUT html htm


としてやるのがベストです。
しかし.htaccessを許可しているなら

LayoutIgnoreURI *.cgi



のように記述してやる事で特定のフォルダ以下のcgiには挿入しないといった動作が可能です。
ちなみにLayoutMergeとかそういった内容はApache2.2(mod_layout 5系)では削除されたようで
記述するとApache再起動時にエラーとなるので注意して下さい。




コメント:0

コメントフォーム
情報を保存

トラックバック:0

この記事のトラックバックURL
http://www.ahref.org/tech/server/apacche/717.html/trackback
この記事へのリンク
エーエイチレフ linuxサーバー技術情報 からの記事 Apacheのモジュールmod_layoutでHTMLの自動挿入

Home > Apache | サーバー(Debian) > Apacheのモジュールmod_layoutでHTMLの自動挿入

Return to page top

運営会社(株)シーズ WEBアプリケーション、フリーCGI配布「ahref(エーエイチレフ)」 Eビジネスに強いレンタルサーバー「ACサーバー」 大容量ファイル転送サービス「デカメール」 動画を楽しもう♪動画ポータルコミュニティ「モヴィエ」