RewriteRule 動的なページを静的なページに

Vine LinuxでインストールされているApacheについてのメモ書きです。こうしたい・あぁしたいといったかゆいところに手が届くような事柄を扱っていきたいですね。| | 私もSEOについて色々調査してみました。Apacheのログ解析からどのような変化があったかを載せていきたいと思います。また、SEO対策として学んだことも載せていきます。
RewriteRule 動的なページを静的なページに

RewriteRule 動的なページを静的なページに

木曜日, 11, 10, 2005

line line

一般にCGIやPHPをはじめJSPといった動的なページはSEO対策としては不適切といわれています。
いくつか原因があるのでしょうけれど、もしかしたら拡張子(.cgiや.php)をgoogleは嫌っているのかもしれませんし、動的、つまりころころページの内容が書き換わるからかもしれません。
最も大きな理由としては、googleの検索ページのURLをみればわかりますが、検索内容によって無限にURLが変わってくるためだと思います。
これはGET形式でサーバーにデータを送信した際、「?q=aaa」という形でファイル名に尾ひれがついてしまうためですね。
この尾ひれに対して1つ1つリンクを貼れば静的なページと同じように扱ってくれるのでしょうが、なかなかどうして、結構大変です。
では、POST形式でデータを送信するようにすればいい。と思うかもしれませんが、googleロボットはPOST形式でデータを送信するでしょうか。
単純にアクセスした時の結果をデータベースとして反映させるのでしょうから、送信ボタンを押してくれないと表示されないようなページは、やはり嫌われるのだと思います。

RewriteRule たとえば・・・

さて、自宅サーバーもしくは、ホスティング業者を利用している場合でも「.htaccess」をいじれるのであれば、動的なページを静的なページとして扱えます。
たとえば、こんなURLのCGIがあったとします。

http://aaaaaaaa.aaa.aa/bbs.cgi?id=suzuki&page=1

これはじゃぁ、たとえば「id」が「suzuki」という人用のBBSで、page=1は「1ページ目」を表示する場合のURLだとします。
SEO対策として有効にさせるためには、このURLをリンクとして貼り付ければいいのですが、これだと「&page=2」というように2ページ目以降にはあまりSEO対策としては有効ではないでしょう。
そこで、以下のようなURLにしてみます。

http://aaaaaaaa.aaa.aa/suzuki_1.html

どうでしょうか。このURLで先ほどのCGIにアクセスしたかのように出力されればベストなわけです。2ページ目以降は、

http://aaaaaaaa.aaa.aa/suzuki_2.html

という感じで、やはり静的なページのURLのように見せかけることが出来ます。

RewriteRule httpd.conf の設定

では、このような魔法(?)をApacheにかけてやることにします。

httpd.conf を開いて、どこでもいい(とはいっても、トップディレクティブかバーチャルドメインディレクティブ内)ので、以下のように記述します。

RewriteRule ^/(.*)_([0-9]+)\.html /home/httpd/cgi-bin/bbs.cgi?id=$1&page=$2

このRewriteRule は、正規表現でマッチしたものをAilasのように別のページへと飛ばしてくれます。
あ、飛ばしてくれるという表現はちょっと違いますね。(^ ^;ゝ
URLは変わらず、出力だけを変更してくれることが出来ます。Aliasがディレクトリ単位だったのに対して、RewriteRuleはページ単位で扱えるようです。
細かい正規表現は、正規表現を扱っているサイトさんに譲るとして・・・。Perl互換の正規表現らしいので、複雑なURLにも対応できそうですね。

保存したら、Apacheを再起動します。

# service httpd restart

で、「 http://aaaaaaaa.aaa.aa/suzuki_1.html 」でアクセスしてみます。
「 http://aaaaaaaa.aaa.aa/bbs.cgi?id=suzuki&page=1 」と同じページになったら成功です。

「次のページ」なんていうのも

<a href="suzuki_2.html">次のページ</a>
なんて出来るわけですね。

って、あんまり自信ないけれど。(^ ^;ゝ

この記事はご希望通りの内容でしたか?

投稿者 campanella : 2005年11月10日 03:36 | Apache | PHP | SEO対策 | 編集

line

□□□ トラックバック □□□

このエントリーのトラックバックURL:

□□□ コメント □□□

初めまして。
非常に参考になりました!
ありがとうございました。

投稿者 三十路オンナ : 2006年11月08日 18:06

line
名前
メールアドレス
URL
コメント