▼Menu

外部ファイルを取込む方法(PHPまたはSSIインクルード)

私は以前にはフレームを使用して ホームページ を作成していました。理由はメニューのメンテナンスが楽だからです。しかしフレームの欠点が目立つように感じて、フレームを使わない他の方法を模索していました。


広告

PHPまたはSSIを使用して外部ファイルを取り込んでメニューを作成したり、アフィリエイトプログラムを挿入したページを作成する方法があることを知ってからは、この方法を採用することにしました。

もちろんこの方法はPHPまたはSSIが使えるサーバーでないと行なうことができません。

メニューやアフィリエイトにPHPまたはSSIを使うメリット

メニューやアフィリエイトにPHPまたはSSIを使うようになってから、ファイルの管理が非常に楽になりました。各ページに挿入したメニューやアフィリエイトスクリプトのメンテナンスが簡単になったからです。特にグーグルのアドセンスはスクリプトが基本的には各ページ同じで良いので特に効果的でした。

またアフィリエイトスクリプトの中にはホームページ作成ソフト(ホームページビルダー等)でエラーになったり、ホームページビルダーが勝手にスクリプトを書き換えたりしていましたが、全くエラーが出なくなりましたし、勝手にスクリプトを書き換えられることも無くなりました。特にTEXTSSのソフトで全ファイル一括変更をする場合、インクルードファイルを除外すると、間違ってアドセンスコードを書き換える心配が無くなります。

特にグーグルアドセンスはスクリプトの書き換えを禁止されており、安心してホームページビルダーを使うことができます。

その他の効果として、サイトマップのメンテナンスが全く不要になった事です。私のサイトマップは見出しと外部のメニューファイルを羅列しただけで構成されています。ページの追加の時メニューファイルはどうしても変更する訳でサイトマップを変更する必要が無いのです。

PHPを使用し外部ファイルを取り込んでメニューを作成

PHPとはHTML文書中に記述されたスクリプトをサーバーのPHPが実行しその結果を HTMLデーターとしてWebブラウザに渡すものです。

PHPファイル(拡張子は普通php)の中でメニューを呼び出すには次のようにします。

<?php include("http://domain/***/inc/menu.inc"); ?>

この方法だとドメインを変更したりしてドメインが違っていると使えないので、汎用で使えるようにするには次のようにします。

<?php include($_SERVER['DOCUMENT_ROOT']."/***/inc/menu.inc"); ?>

ここで、「/***/inc/menu.inc」は「http://domain/***/inc/menu.inc」から「http://domain」を取り除いたもので / から始まります)

この方法はどのディレクトリからでも同じ方法で外部ファイルを呼び出せ、ドメインが違っていても何も変更することなく使えます。またメニューファイルの拡張子はincでなくてhtmでもhtmlでもphpでも何でもかまいません。しかし、インクルードされるファイルならincの方が良いでしょう。

includeを使わずrequireを使っても同様な動作をさせることができますが、requireの場合は、要求されたファイルがもし無かった場合はエラーとなり、そこでプログラムが停止する場合があるようです。

.htaccessを使用してhtmlファイルをPHPで動作させる方法

SEO対策という観点から考えるとファイル名を変えるのは好ましくありません。ファイル名を変更せずに従来のままのファイル名を使用する必要があります。しかし、本格的にPHPを使って多くのページを作成するのなら、拡張子をphpに変更して、ページの永久移転(301転送)を使った方が良いでしょう。そうすればSEOでも問題ありません。

PHPを動作させるファイルの拡張子をphpだけでなくhtmやhtmlでも使えるようにするには.htaccessファイルに次の行を追加します。

AddType application/x-httpd-php .htm .html

この時拡張子の前のドットはあっても無くてもかまいません。

SSIを使用し外部ファイルを取り込んでメニューを作成

SSIとはServer Side Includeの略です。つまりサーバー側でインクルードするので、サーバーに負担が掛かります。その為、SSIの使用を許可していないサーバーも多いようです。

SSIファイル(拡張子は普通shtmまたはshtml)の中でメニューを呼び出すには次のようにします。

例としてドメインのルートからメニューまでのパスは /***/inc/menu.inc とします。

<!--#include virtual="/***/inc/menu.inc" -->

ここで、「/***/inc/menu.inc」は「http://domain/***/inc/menu.inc」から「http://domain」を取り除いたもので / から始まります)

この方法はどのディレクトリからでも同じ方法で外部ファイルを呼び出せ、ドメインが違っていても何も変更することなく使えます。またメニューファイルの拡張子はinc でなくてhtmでもshtmでもshtmlでもかまいません。しかし、インクルードされるファイルならincの方が良いでしょう。

.htaccessを使用してhtmlファイルをSSIで動作させる方法

SSIを動作させるファイルの拡張子をshtmやshtmlだけでなくhtmやhtmlでも使えるようにするには.htaccessファイルに次の2行を追加します。

Options +Includes
AddHandler server-parsed .htm .html

この時拡張子の前のドットはあっても無くてもかまいません。またhtmlファイルに同時にPHPとSSIを有効にすることはできません。まあ、する必要もその意味もありませんが。

拡張子 htmやhtml に SSI を有効にした場合、すべての html ファイルがサーバーによってSSIだと認識されて、サーバーに負担を掛けるので好ましくありません。

上記以外のSSIのメリット

私はアクセス解析に有限工房のefStatというのを使っています。これはフリーソフトでありながらとても高機能です。UTF-8で文字化けする欠点と、更新が止まったままなのが残念ですが、文字化けの欠点は改造して使用しています。改造の内容はユーザー掲示板が無くなったのでもうわかりません。

広告

普通はCGIで動かすのですが、fcount.cgiを一部のページでSSIで動かすと、高速で訪問する検索ロボットも捕捉することができます。どんな検索ロボットがどの程度の頻度で来ているかがわかります。隠しページにSSIとアクセス解析を適用すると検索ロボットだけを捕捉できて、とても便利です。

各ページに付けたアクセス解析スクリプトもPHPまたはSSIで各ページに取り込んで使っています。

.
Main Menu |Mobile |アスナロネット |工夫と製作 |アンテナ |修理技術 |電気柵 |素人農業 |養蜂 |生活情報 |健康情報 |食品と栄養 |名所旧跡 |パソコン |写真集 |植物の生態 |動物の生態 |English
リンク集 |Sitemap |お問合せ |通信販売 |その他注文 |Pポリシー |修理掲示板
ネット環境 Menu |BBS迷惑書込 |迷惑Mail |Mail送信規制 |BBSログ変換 |過去ログ表示 |MailCGI改造 |HPフォルダ構造 |サーバ引越 |携帯サイト作り方 |携帯アクセス制御 |PC携帯両用サイト |サブドメイン同期 |XHTMLに書換 |TEXTメニュー |メニュー配置 |HTML一括変更 |ファイル取込 |ヘッドタグ共通化 |外部CSS |CSSコマンド |印刷用CSS |標準,互換モード |段組 |表示の速いHP |HP横幅 |HP背景 |HP文字 |HP見出し |HPタイトル |画像使い方 |アクセスアップ |サイトマップ作成 |RSS配信 |自ドメインRSS |RSS使い方 |htaccess転送 |アクセス制限 |Adsenseクリック規制 |Google広告配置 |ブログ人に広告配置 |WP設置方法 |WP不具合対処法 |WP個別記事h1変更 |HPビルダ起動時間 |Expression Web |複数パソコンHP更新 |FFFTP使い方 |文字大きさ |タッピング |ページ内検索 |Thumbs.db |日本語FEP |データ伝送 |MTUとMSS
備中美川の山里暮らし |Car Evolution |Tomy's HP |このページの先頭
アスナロネット
カスタム検索
更新日:2010/06/21