うろぐ

インターネットサービス&デジタル家電&デジタルカメラ&パソコンのレビュー

CGIやPHPなど動的なページを静的なページに置き換えるのがmod_rewriteです。
正規表現を使って動的なURLを静的なURLに置き換える例ですが、
CGIを使った動的なURL
http://www.example.com/document/document.cgi?type=faq&lank=bigin&page=3

http://www.example.com/document/faq/bigin/3.html
という静的なhtmlのURLに置き換えることが出来ます。

googleやyahooのインデックスに動的なページは登録されにくいですが、mod_rewriteを使用することで静的なURLとする事が出来るので、インデックスに登録されやすくなり、SEO対策ともなります。
それと何より、静的なURLの方がユーザーにとってはなじみやすく見やすいものです。

mod_rewriteはApacheのconfigファイルに書いて設定することも出来ますが、.htaccessファイルにソースを書いて設定することも出来ます。..htaccessファイルを読み込ませることは、若干サーバーに負担をかけるので処理が遅くなると言う欠点がありますが、.htaccessという設定ファイルをアップロードするだけでmod_rewriteを利用できるので、手軽です。

mod_rewriteはApacheのモジュールとしてインストールして使用します。
mod_rewriteがインストールしてある
有名なサーバーでは、料金が安いと評判のさくらインターネット などがあります。
今回のわたしの話に出てくるmod_rewriteを使用しているサーバーはWILL@NET です。

root権限をもてるサーバーを借りられれば自分でインストールも出来るのですが、かなりやっかいなモジュールなので、よほど自信がない限りは、mod_rewriteがあらかじめインストールしてあるサーバーを借りるのが賢明でしょう。

.htaccessファイルの設定
本題の設定です。
.htaccessを配置するディレクトリやサーバーの設定によって、若干の違いがあります。
下に書いた設定の全てで動作する場合もありますし、どれか1つでしか動作しない場合もあります。試して作動する設定を探してください。
1行目のRewriteEngine onはmod_rewriteを使用するという宣言ですので全てで共通です。

  1. RewriteEngine on
    RewriteRule ^([0-9A-Za-z]+)\.html$  document.cgi?type=$1&lank=$2&page=$3 [L]
    ※一番シンプルです
  2. RewriteEngine on
    RewriteRule ^([0-9A-Za-z]+)\.html$  http://www.example.com/document/document.cgi?type=$1&lank=$2&page=$3 [L]
    ※URLが書かれています。
  3. RewriteEngine on
    RewriteRule ^/document/([0-9A-Za-z]+)\.html$ http://www.example.com/document/document.cgi?type=$1&lank=$2&page=$3 [L]
    ※RewriteRuleの後のパスに「/document」が入っています。

わたしのサーバーとディレクトリの設定では1と2でしか動作しませんでしたが、2や3でしか動作しないサーバーもぐぐってみると有るようです。

2008/5/16追記
さくらインターネットに申し込む>>;さくらインターネット

5月 13th, 2008

Posted In: SEO対策, サーバーの設定とトラブルの回避方法

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です