2008年09月23日

ApacheのURLを書き換えるべし

Webページを開く際に必要なURL。

URLにもいろいろありますよねー。

1. http://hogehoge.com/
2. http://hogehoge.com/test/hoge.html
3. http://hogehoge.com/road?id=15&type=34

などなど。

で、3番がちょっと違いますね。
3番のものは?とか&とか入ってます。

さて、これらはフォーム等で送られて来たGETのデータです。
これらの値を使ってjspやphp等で処理をして
目的のデータを表示します。mixiとかgoogle等の
検索エンジンで良く見かけますねー。

これらは動的ページとか動的コンテンツとか呼ばれてます。
2番のようなものは静的ページや静的コンテンツと呼ばれています。
動的ページは、ページが一つでいくつも表示が出来ますし
何かと便利な動的ページですが、不便な面もあります。


それは、GoogleやYahooの検索に引っかかりにくい事。
?や&の入っているURLはGoogleやYahooのクローラが
動的ページだと判断して登録してくれなかったりするそうです。

なので、それを防ぐためにURLを静的ページと見せかけて
クローラに登録してもらおうっていう魂胆です。
このようにやっているのがAmazonが良い例です。

とても簡単ですがメモしときます。


方法は簡単!httpd.confを書き換えるだけ。
最初に下記のコメントアウトを外します。

LoadModule rewrite_module modules/mod_rewrite.so



次に書き換えたいURLを指定します。

RewriteEngine on
RewriteRule ^/road/([0-9]*)/([0-9]*)\.html$ /road?id=$1&type=$2 [PT]


二行目の


^/road/([0-9]*)/([0-9]*)\.html$


で、実際にアクセスさせたい静的URLを記述しています。
正規表現を使えるので、細かい指定が出来ます。


/road?id=$1&type=$2 [PT]


この部分で、本当のURLを書きます。
$1、$2の部分に、正規表現で取得した値を入れてます。

[PT]というのは、URLをそのままで処理をします。
[R]というのがあって、この場合は、書き換えて処理します。


よって、上記の設定だと


http://hogehoge.com/road?id=15&type=34

というページに

http://hogehoge.com/road/15/34.html

というURLでアクセスできるようになります。
まさに静的URL!これでクローラ対策はバッチリですねー。
ラベル:Apache URL Rewrite
posted by 夏ミカン at 22:36| 沖縄 ☔| Comment(2) | TrackBack(0) | IT技術 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
ぅ〜ん、自分もApacheでバーチャルホスト
しながらへなちょこサーバーの
管理を少ししてるんですが、
全く分からないです…

最近、Java頑張り過ぎて
サーバーの勉強を全然してないです…
たまには僕もApacheやってみます(笑)

そう言えば夏ミカンさんは
sun java web serverと言う、
あまり人気?じゃないwebサーバーソフト?
をご存じですか?
Posted by na-toi at 2008年09月24日 17:07
→na-toiさん
自分はApacheのバーチャルホストの
設定すらしたことないです(大汗
Javaを使うとなるとTomcatを使ってみたり
Axisを使ってみたりと、Apacheと何かと
連携したりすることもありますし
もっと勉強しなきゃなぁと日々思います。

sun java web server初めて聞きました!
ググって早速調べましたよー。
SJS Web Serverってヤツですよね??
ん?Applicationが付くヤツもあるのですね。
こちらは無料なんですねー。
Posted by 夏ミカン at 2008年09月24日 20:38
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。