0%

Programmingプログラミングナレッジ

Posted:2018.04.23

Apacheで使うshtmlとSSI(Server Side Includes)について

最近ある案件で見慣れない仕様があったので調べてみますと、SSI(Server Side Includes)と呼ばれる機能を知ったので備忘録として残しておきたいと思います。最近ではあまり見かけないようなのですが便利な機能でもあったりするようです。

 

ウェブサーバー内で実行できる機能のSSI

SSIはServer Side Includesの略で、ウェブサーバー内で実行することができる機能です。例えば、変数の値を出力したり、Linuxのコマンドを実行したり、外部ファイルをインクルードしたりすることができます。このSSIですが、HTMLファイル内に下記のような形で記述します。

<!--#[command] [attribute]="[value]" -->

 

ちょうどHTMLのコメントのような形になります。#の直後にあるコマンドにはいくつか用意されている実行機能を指定し、それに対応した属性と値を指定することになります。コマンドには主に以下のようなものが用意されています。

 

config システムのフォーマットを設定する
echo 指定した値を出力する
exec 指定したコマンドを実行する
include ファイルをインクルードする

 

これらを使うことでいろんな機能が実行できるようになります。例としていくつかサンプルをあげてみます。

// 例:現在の日時を表示する
<!--#echo var="DATE_LOCAL" -->

// 例:コマンドでディレクトリ内のリストを出力する
<!--#exec cmd="ls" -->

// 例:外部ファイルのインクルード(同ディレクトリの場合)
<!--#include file="sample.html" -->

// 例:外部ファイルのインクルード(他ディレクトリの場合)
<!--#include virtual="../html/sample.html" -->

 

 

.htaccessを編集してSSIを使えるようにする

SSIは初期状態では使えませんので、サーバー設定ファイルや.htaccessファイルを編集する必要があります。これら編集部分をまとめてみますと下記を追加する形になります。

【.htaccess】

Options IncludesNOEXEC
AddType text/html .shtml
AddHandler server-parsed .shtml

 

まずオプションの「IncludesNOEXEC」でSSIを有効にして、かつEXECの実行を無効にさせます。「Includes」だけですとEXECのコマンド実行を許可することになるのでセキュリティリスクが高まりますので注意が必要です。

 

次に「shtml」の拡張子を追加して有効にし、SSIの対象ファイルと設定します。SSIは通常のHTMLファイルでも使えるのですが、その場合は他のすべてのHTMLファイルが対象になるのでセキュリティリスクが高まります。ですので、SSIを実行する対象は「shtml」の拡張子を持ったファイルに限定しておくと良いようです。

 


 

セキュリティリスクもありサーバー側での処理はPHPで対応するケースが多いので、あまり最近では少なくなっているようですが、豆知識として覚えておくと便利かもしれませんね。

 

(参考サイト)
Apache チュートリアル: Server Side Includes 入門
SSIの仕組みと有効化・制限の設定

author
この記事を書いた人オガワ シンヤ
FacebookTwitter

DesignSupply.代表 / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

制作のご依頼やお問い合わせ・パートナー業務提携のご相談はこちら

デザインやウェブ制作についてのご依頼やご相談、その他お問い合わせなどもお気軽にご連絡ください。フットワークの軽さやレスポンスの早さ、また豊富な経験や知識、技術を活かした対応力といったフリーランスクリエイターの強みでクライアント様、パートナー企業様のお力になります。デザインからコーディングやWordPress実装といったウェブサイト構築はもちろん、写真撮影や動画編集、コンテンツ制作からサイト運用サポートまで一括してお任せください。

ホームページ制作のご検討やウェブ運用でお悩みの経営者様や企業のウェブ担当者様をはじめ、個人で店舗を営んでいらっしゃるオーナー様、フリーで活動されているビジネスオーナー様はもちろんのこと、リソース不足でお困りの制作会社様、またクリエイターをお探しの代理店様も大歓迎です。

コンタクトをご希望の方はお手数ですが、下記よりお問い合わせフォームのページへアクセスしていただき、必要事項を入力の上メッセージを送信してください。確認でき次第すぐに折り返しご連絡致します。

こんな記事も読まれています

コメントもお気軽にどうぞ

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。また、* が付いている欄は必須項目となります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

CAPTCHA


ページトップへ
大阪市天王寺区のホームページ制作デザイン事務所(SOHO)DesignSupply.【デザインサプライ】