▼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 |Top Page |電気、電器 |工夫と製作 |アンテナ |デジタル放送 |修理技術1 |修理技術2 |修理過去ログ |電気柵 |生活情報 |健康情報 |名所旧跡 |ネット環境 |WordPress |写真集 |English Top
リンク集 |Sitemap |お問合せ |Pポリシー |修理掲示板
ネット環境 Menu |BBS迷惑書込 |迷惑Mail |Mail送信規制 |nPOP使い方 |BBSログ変換 |過去ログ表示 |MailCGI改造 |HPフォルダ構造 |サーバ引越 |英語サイト作り方 |二ヶ国語相互リンク |携帯サイト作り方 |XHTML Basic |XHTML Mobile P |携帯アクセス制御 |PC携帯両用サイト |サブドメイン同期 |XHTMLに書換 |TEXTメニュー |新ウィンドウに表示 |外部トラッキングコード |メニュー配置 |HTML一括変更 |ファイル取込 |ヘッドタグ共通化 |外部CSS |CSSコマンド |印刷用CSS |標準,互換モード |段組 |表示の速いHP |HP横幅 |HP背景 |HP文字 |HP見出し |HPタイトル |画像使い方 |altとtitle属性 |アクセスアップ |サイトマップ作成 |RSS配信 |自ドメインRSS |RSS使い方 |htaccess転送 |wwwの有無と統一 |アクセス制限 |Adsenseクリック規制 |Google広告配置 |チャネルの設定 |ブログ人に広告配置 |ランダム画像切替 |デザイン自動切替 |フォルダ名取得 |Google+1ボタン |いいねボタン |Facebookのコメント |HPビルダ起動時間 |Expression Web |複数パソコンHP更新 |FFFTP使い方 |文字大きさ |モニタの選び方 |タッピング |ページ内検索 |ショートカットキー |Thumbs.db |日本語FEP |上手な日本語変換 |データ伝送 |MTUとMSS
山里の素人農業 |daii.jp/en |私のブログ |Car Evolution |Tomy's HP |ページの先頭
 
 
as76.net
RSS
 
楽天市場
広告
Valid XHTML 1.0
Only OGP error
更新日:2011/12/04