サーチエンジンにやさしいページ構築に不可欠なmod_rewrite

【PR】 ●ラピッドサイト:VPSサーバならmod_rewriteなどDSOモジュールの利用も可能

現在、SEO(Search Engine Optimization。サーチエンジン最適化)という言葉はWEBマーケティングを行っているものにとっては常識的な内容になっています。いくらコンテンツが素晴らしくても、見てもらわなければ意味がありません。そして、トラフィックの大半はサーチエンジン経由であることも周知の事実です。

サーチエンジンの特定検索結果における表示順序の設定アルゴリズムの基本は、ご存知のように「被リンク数が多いサイトほど良いサイトである→検索結果において上位に表示すべきである。」というものである。結局、たくさんのサイトからリンクを受けるためには、内容が充実したサイトでなければならないというのが基本である。

Click Here!

mod_rewriteにも対応したおすすめのレンタルサーバ


<<動的なページは、サーチエンジンにインデックされにくい>>

しかし、実際には、どんなに内容が良くても、サーチエンジンに登録されにくいページというものは存在します。JavaScriptによるリンク・フレームページなどもそうですが、動的なページはその最たるものでしょう。動的というのは、PHPやperl(CGI)、ASP、JSPなどで作成されたページのうち、パラメータ(引数)が渡されたページのことです。http://www.example.com/detail.php?id=123などというURLです。ここでid=123の場合と124の場合とでは、異なるコンテンツであっても、サーチエンジンによってはパラメータをカットしてhttp://www.example.com/detail.phpでインデックス(登録)したりするところもありますし、パラメータをカットしないGoogleやYST(Yahoo! Japanのページ検索)であっても、パラメータのある動的URLのインデックスの数に制限を設けている場合もあります。

ですから、せっかく商品の数が何千とあって、データベースから抽出して動的にページを表示させていても、そのうちサーチエンジンに登録されるのはせいぜい十個程度になってしまったりすることがあるわけです。これは、大問題です。

 <<mod_rewriteを使わずに、大量HTMLファイルをデータベースから作成する場合>>
解決策は全てのページをHTMLで作成しなおすことです。仮にデータベースの更新の頻度が多くないとすれば、たとえば
http://www.example.com/detail.php?id=123
の内容を
http://www.example.com/detail/123.html
として保存し、全てのページからの同ページへのリンクを後者のhttp://www.example.com/detail/123.htmlに書き換えます。これにより、サーチエンジンには静的なページであるhttp://www.example.com/detail/123.htmlが登録されますので、同様な方法で124.htmlなども作成していきます。もちろん、手作業でこれを行うと死ぬほど大変なので、プログラムで一括作成します。detailというディレクトリーに(webuserである)nobodyに書き込み権限を与えるか(パーミッションを707に一時的に変更)、suExecが利用可能であるならばsuExecでdetailディレクトリーに、どんどこHTMLファイルを作成していきます(PHPならCGI版PHPの場合、ユーザー権限でファイルの作成ができるはずです)。

ただ、このやり方は注意しないと、サーバ管理会社から怒られるかもしれません。何千ページものHTMLファイル作成のために、サーバ上でHTMLファイルを作成され日には、相当な負荷になりそうです。短時間のうちに、連続で、何千回ものSQLクエリーが発行されるからです。ですから、ページが多い場合には、ローカルで同じような環境を準備し、PHP+データベースからHTMLファイルを作成し、detailディレクトリーを丸ごとアップロードする(もしくは、 detailディレクトリーをローカルで圧縮して、圧縮されたファイルをアップロードしサーバ上で解凍する)のが賢いやり方でしょう。

しかし、もっと賢いのは、データベースからデータを抽出しHTMLファイルを作成する作業を一時に全部自分で行うのではなく、他人の手を借りることです。どういうことかといいますと、http://www.example.com/detail/123.htmlにアクセスがあったとすれば、自動的にhttp://www.example.com/make_detail.php?id=123に転送され、make_detail.phpがdetailディレクトリーに123.htmlを作成するようにプログラミングしておきます。さらに、123.htmlに2回目以降アクセスがある場合には、make_detail.phpを通さずに直接123.htmlを表示するようにさせます。こういうことが本ページで扱うmod_rewriteを使えば、可能なのです。これであれば、

mod_rewite利用のメリット
1.WEBスペースの効率的利用
アクセスが全く無いようなHTMLページまで事前に作成して、利用可能なWEBスペースを無駄に消費するようなことを回避できます。

2.更新頻度が高ければ高いほど、メリットが大きいです。
毎日、更新しなければならないコンテンツであればなおさらです。毎日、更新しなければならないのに、全コンテンツをそのつど、ローカルなりサーバで一括作成するのは大変です。アクセスがあるたびに必要なファイルをサーバ上で動的に作成させるのが賢いやり方ですね。

たとえば、毎日24時間に一度更新しなければならないならば、たとえば1時間おきにcronプログラムを走らせ、detailディレクトリー内のhtmlファイルの最終更新日(Last Modified Date)をチェックし、23時間以上前の最終更新日であれば、削除するようにします。削除されたファイルに次にアクセスがあった場合には、再びそのHTMLファイルは動的に作成され復活します。このようにして、一度作成されたHTMLファイルはそのコンテンツの賞味期限一杯まで、静的ページであるHTMLファイルに直接アクセスさせることが可能になります。賞味期限が切れれば、そのHTMLファイルは削除され、(最初の1回だけ)新たに動的にHTMLページが生成されるようにできます。



PostgreSQL、MySQL、mod_rewrite、suEexcが利用可能な本格サーバが月額4千円台〜

それでは、具体的な設定方法を解説します。当然のことながらmod_rewriteが利用可能なレンタルサーバでなければ動作しませんので、ご利用になられているサーバでmod_wrewriteが利用可能かどうか、まず、お確かめください。もしくは、次のページで紹介しますレンタルサーバ・リンク集では、全てmod_rewriteが利用可能なレンタルサーバをまとめていますので、そちらのサーバに移転することを検討してみてください。

mod_rewriteの設定例   ※.htaccessファイル内に次のような記述をします。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule detail/([0-9a-z]+)\.html$ /make_detail.php?id=$1
一行目の「RewriteEngine on」で、「リライト用のエンジン」をオンにする、という宣言になります。ReWrite(リライト)とは「書き換え」の意味です。ここではURLを書き換えてくれるのですが、その条件を設定しているのが2行目です。二行目の「RewriteCond」は「Rewrite(リライト)」+「Cond(ition)=条件」です。「!」は否定を表します。「-f」は「そのファイルが存在する場合」というオプションです。したがって、「!-f」で、「『REQUEST_FILENAME』(リクエストされたファイル名)が存在しないならば」という意味になります。

そして、三行目で定義しているのが、「Rewrite(リライト)」の「Rule(ルール)」です。ここでは、(ルートディレクトリーから見て一つ下の)detailディレクトリーの中のアルファベット(小文字のaからz)もしくは0から9までの数字をファイル名にしたHTMLファイルがリクエストされたら、それは、ルートディレクトリーの中のmake_datail.phpにアクセスしなさいという意味になります。その際に、***.htmlの場合は、make_detail.php?id=***にアクセスしてくださいという意味になります。正規表現の定番どおり、$1で後方参照しているわけです。もちろん、引数が二つ以上あっても構いません。

なお、実際にmod_rewriteを使って構築しているページのサンプルとしては、当ページの管理人が運営していますアフィリエイト用サイトですが、

ビッダーズ・アフィリエイト」(ビッダーズWEBサービスを元に開発。)

ソフトの購入はダウンロードがお得
DVDのオンラインレンタル・購入は・・・
WEBFAQパソコンお買い得情報
パソコン・周辺機器・PCソフトショップ
コンピュータ関連書籍専門ショップ
家電販売ショップ
日用品・食料品ショップ
(以上、バリューコマースのMyLink活用で作成。)

があります。


このようにして、mod_rewriteを使えばサーチエンジンにやさしいページを構築することができます。

次のページでは、「mod_rewriteが利用可能なレンタルサーバ」についてまとめてみます。  



<< 失敗しないレンタルサーバの選び方に戻る【関連リンク】 データベース(PostgreSQL、MySQL)が利用可能なレンタルサーバ