PR

サーバー管理の基本

2008年9月5日(金)
伊藤 千光

サーバーサイド・インクルードを使ってみよう

 それでは、いよいよ実際に.htaccessを使ってみましょう。まずは手始めに、Server Side Include(SSI)と呼ばれる機能を有効にしてWebページに現在時刻を表示させます。以下で作成するファイルはすべてこちらからダウンロード(http://www.thinkit.co.jp/images/article/134/1/13411.zip)できますので、ぜひ実際に試してみてください(13411.zip/2.00 KB)。

 まずはFTPクライアントなどを使ってWebサイトに実験用のディレクトリを作成し、その中にリスト1の内容で.htaccessファイルを作成してください。これでSSIの機能が有効になりました。なお、Windowsエクスプローラーはピリオドで始まるファイル名への名前変更ができないので、.htaccessを作成する際はテキストエディタの「名前を指定して保存」を使うとよいでしょう。

 次は、.htaccessと同じディレクトリにリスト2の内容で「time.shtml」を作成してください。ファイル名は何でも構いませんが、拡張子は「.shtml」でなければなりません。リスト2のHTMLコメントに似た行が「SSIディレクティブ」で、HTML中でSSIの機能を呼び出すのに使用します。

 すべてが終わったら、Webブラウザで「time.shtml」にアクセスしてください。見事に現在時刻が表示されるはずです。少したってからリロードすると、きちんと現在時刻が更新されることがわかります。このように、SSIディレクティブを使うとWebページの内容を動的に書き換えることができます。CGIと似ていますが、記述が簡単で、HTMLを部分的に書き換えられるのが特徴です。

SSIディレクティブの基本

 SSIディレクティブの書き方をもう少し詳しく解説します。以下がSSIディレクティブの基本構文です。



 コメントの書式になってはいますが、HTMLのタグとよく似た構造であることがわかります。要素には「config」「echo」「include」「exec」「set」「if」「elif」「else」「endif」の9種類があり、それぞれ機能と指定できる属性が決まっています。

 先の例でいくと、まずリスト2の2行目で表示する時刻の書式を指定しています。configは、ほかのSSIディレクティブの動作をカスタマイズする要素で、この場合はtimefmt属性を設定することで表示する時刻の書式を変更しています。ここで使用している%記法に関してはstrftimeのmanページ(http://www.linux.or.jp/JM/html/LDP_man-pages/man3/strftime.3.html)に解説されていますので、そちらを参照してください。

 3行目のechoは、var属性で指定された変数をWebページに挿入する要素です。ここで指定している「DATE_LOCAL」は現在時刻を格納したデフォルト定義の変数なので、それがWebページに挿入され、結果的に現在時刻が表示されているわけです。変数については次回でもう少し詳しく解説します。

 SSIを使った例をもう1つ紹介しましょう。実験用ディレクトリにリスト3、リスト4をそれぞれ見出しにあるファイル名で作成してください。その後、Webブラウザで「include.shtml」にアクセスすると、リスト4の内容がブラウザに表示されます。リスト3のinclude要素により、リスト4の内容がそこに挿入されたのです。

 このように、include要素を使うと簡単に外部ファイルの内容を取り込むことができます。すべてのWebページで表示するヘッダやナビゲーションバーを独立して管理できるので、サイトのメンテナンス性が大幅に向上します。

 もちろん、以上のようなことはSSI以外の技術(例えばJavaScript)でも実現可能です。しかし、SSIは名前のとおりサーバーサイドで処理されるため、JavaScriptが動作しないブラウザでも問題なく表示できます。アクセシビリティに優しい技術と言えるでしょう。書式が簡単でHTMLの拡張のような感覚で使いこなせることも大きな利点です。

 さて、次回からは本格的に.htaccessの活用方法を解説していきます。SSIのさらに高度な機能にも触れますので、ご期待ください。

白髪になってもプログラムを組んでいたい、元ゲームプログラマーのWebエンジニア。いくつかのゲーム会社を渡り歩いた後、2007年にWebの世界に転身。現在はRuby on Railsを用いた業務システムの開発に従事している。ブログでの情報発信も精力的に展開。WebOS Goodies : http://webos-goodies.jp

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています

サーバー管理の基本 | Think IT(シンクイット)

Think IT(シンクイット)

サイトに予期せぬエラーが起こりました。しばらくたってから再度お試しください。