2021.05.09
サイト内で、例えばヘッダやフッタなど、各ページに同じコンテンツを使用したい場合に、各ページにいちいち同じ記述をしていくのは大変です。また、修正をしなくてはならなくなったときには全ページ直さなくてはなりません。4~5ページしかないサイトならともかく、何十ページ、何百ページもある巨大なサイトでは途方に暮れます。
これを、効率的に行うために、よく使われるのが「インクルード」という手法です。
A.埋め込み用のファイルを一つ用意する(各ページ共通の部品)
B.埋め込まれる側(受け側。各ページ)に、埋め込み用のタグを記述する
埋め込みの方法としては、主に、
1.PHPを使う
2.SSIを使う
3.Dreamweaverなどのテンプレート機能を使う
これらがよく使われる技法ですが、3のDreamweaverのテンプレート使用の場合は、そもそもDreamweaverを持っていなければ使えませんので、一般的には上記1か2になるでしょう。
PHPとSSIのどちらがいいかについては、これまたネットで調べると山ほど出てきて、細かくベンチマークをとって調べている人もいたりしますが、実際にどちらがいいかについては諸説あり、明確に「こっち!」とは言えないのが現状です。
私の個人的な意見としては、「どっちもさほど変わらないのでは?」と思っています。昔は、サーバーに負荷がかかるということが言われていましたが、最近のサーバーは性能が格段に良くなっているため、そんなに言うほどの負荷はかからなくなっているか、比較するほどの差はないような気がします。
現に、各社サーバーとも「PHP、SSI共に使用可能です」というようにアナウンスしてますから、どちらにしても特に問題はないのでしょう。
さて、具体的なincludeの方法については、ネットで検索すれば山ほど出てくるので、それを参考にしていただくとして、ここでは、注意点についてお知らせしておきます。(というより、自分が忘れないように備忘録として)
インクルードする場合の、.htaccessの記述に注意
まず、PHPを使う場合は、本来、埋め込むファイルも埋め込まれるファイルも、拡張子を「.php」にする必要があります。しかし、現実には既に作成済(またはある程度作成が進んでいる)の場合が多いと思うので、拡張子は「.html」から変更したくないですよね。
そこで、.htmlをPHPとして認識させるために、.htaccessというファイルに、「ある記述」をしてそれをサーバーにアップしておけばOKです。
厄介なことに、サーバーによって.htaccessの記述方法が微妙に違うことがあるので、注意が必要です。
私もネットで調べた情報に従って記述したら、私が使用しているサーバーではうまく作動しなかった(エラーが返された)ので困ったことがありました。
ちなみに、ConoHaサーバーでは、
AddType application/x-httpd-lsphp .html
と書きます。
次に、SSIを使う場合です。こちらも本来はファイル名の拡張子を「.shtml」にする必要があります。しかしこれもPHPと同様の理由で、拡張子を「.html」のまま使いたいので、.htaccessに記述を加えます。
こちらもやはりサーバーによって微妙に違っていて、エラーが返されることがあります。
ちなみに、ConoHaサーバーでは、
AddType text/html .html
AddHandler server-parsed .html
と記述します。
PHPの場合もSSIの場合も、他のサーバーではまた違った記述が必要になる場合がありますので、ネットで検索するか、サーバー会社に直接問い合わせてみてください。
コメント一覧
コメント投稿