WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
SSI
WEB制作
[SSI].htaccesファイルで共通部品を作成して読み込む
WEB制作担当のKです。
WordPressやMovable TypeなどのCMSにはヘッダーなどの共通部分を簡単に作成する機能が備わっていますが、htmlだけでは共通部分を作ることはできません。
それでもCMSを使わない静的htmlでも共通化したい場面はたくさんあります。
例えば数十ページを超えるWebサイトなどです。
1ファイルずつ編集していくのは、非常に手間がかかります。
そんな時の便利な共通ファイルを作る方法をご紹介します。
手順
1.ホームのindex.htmlと同じ階層に.htaccessファイルを作成します。
テキストが編集できれば何でもいいので、空の.htaccessファイルを作成します。
保存時に.txtなどの拡張子が付く場合は保存後に.txtを削除します。
既にある場合は作成する必要はありません。
2.SSIを使うためのサーバー設定
.htaccessを開いて以下の内容を記述します。
Options +Includes
これにはサーバーにファイルをSSI ディレクティブで解析するようにする意味があります。
その下に以下の内容を記述します。
AddHandler server-parsed .shtml
これには拡張子が.shtmlのファイルをSSIで読み込むことを可能にする意味があります。
3.共通化させる内容を.shtmlで作成
以下のようなhtmlがあり、header部分を共通化させたい場合
<html>
<head>
<title>サイト名</title>
</head>
<body>
<header>
<nav>
ここにヘッダーの内容を記述
</nav>
</header>
<section>
コンテンツ
</section>
</body>
</html>
共通化したい部分のみを抜き取ったshtmlファイルを作成します。
ここではheader.shtmlとします。
<header>
<nav>
ここにヘッダーの内容を記述
</nav>
</header>
.shtmlの保存先は.htaccessと同じもしくは下のディレクトリであればどこでも大丈夫です。
3.SSIの読み込みコードに書き換え
header.shtmlを読みこませたい箇所を書き換えます。
<html>
<head>
<title>サイト名</title>
</head>
<body>
<!--#include virtual="header.shtml"-->
<section>
コンテンツ
</section>
</body>
</html>
ここまででSSIで読み込む一連の作業は完了です。
SSIが正常に読み込めていれば<!–から–>までがshtml内の内容に置き換わります。