トップページ | HP編・目次

●「.html」の拡張子のファイルでSSIを動作させる

 SSI(Server Side Include)を呼び出すファイルの拡張子は通常、「.shtml」ファイルを使います。しかし、shtmlファイルのままだとなにかと不便なことが多々あります。そのようなとき、WebサーバがApacheであれば.htaccess制御を使って、「.html」の拡張子のファイルでもSSIを動作させることができるようになります。プログラムソースは以下のようになります。

AddHandler server-parsed .shtml
AddHandler server-parsed .html
AddHandler server-parsed .htm

 このソースをメモ帳にコピー&ペーストして、「ファイル」 → 「名前を付けて保存」 → 「ファイルの種類」プルダウンメニュー から、「すべてのファイル」を選択し、「.htaccess」のファイル名を付けて「保存」をクリックします。注意しなければならないのは先にメモ帳のまま保存して、ファイル名、拡張子を変更しようとしても「ファイル名を入力してください」とエラーとなってしまうことです。設置場所はSSIコマンドを挿入したHTMLファイルと同じディレクトリに置きます。htaccessファイルのファイル名は付けません。ファイル名、ドット、拡張子すべてを合わせて「.htaccess」です。

 AddType text/x-server-parsed-html .shtml というようにAddTypeを使った方法もありますが Apache 1.3時代の古いバージョンでの書き方です。正常に動作しない場合がありますのでApache 2.0に対応したAddHandlerを使うことをおすすめします。

 .htaccess(ドットエイチティーアクセス)はApacheを用いたWebサーバの環境で使用することができ、ディレクトリ単位で制御するための設定ファイルですが、アクセス制限以外に、エラーメッセージのカスタム設定、MIMEタイプの設定など、幅広い設定がサーバサイド、管理者権限で行えます。

 なお、SSIを動作させるには、ISP(Internet Services Provider)、ホスティング (hosting)の提供するサーバがSSIをサポートしていることが条件となります。サポートしている場合であっても.htaccess制御が使えない場合、条件を付けるなり、制限している場合もあるようです。ISP、ホスティングのサイトで使えるか確認してからお使いください。また、一部のサーバでは、呼び出しコマンドに「exec cmd」だと利用できない場合があるようです。これも注意してください。そのほか、Webサーバに負担を掛けるので注意が必要です。また、設置するディレクトリに .htaccessファイルがすでに設置されていないか確認する必要があります。

SSIコマンド例:
 <!--#exec cmd="ファイルへのパス" -->
 <!--#exec cgi="ファイルへのパス" -->

 #execの属性cgiとcmdの違いは、簡単に書くと、cgiファイルへのパスかHTMLファイルへのパスかの違いです。

【参考】

Key words: .htaccess SSI

全体の目次 | HP編・目次

Copyright (C) 2009 http://www.xml.vc/