RewriteRuleの区切り文字

.htacccessファイルで、RewriteRuleを利用して、動的ページを静的ページに「見せかける」方法はご存知だろう。

ところで、各パラメーターを区切る文字には、何を利用しているだろうか?

+++

その前に、一応復習を。
.htacccessに記述する、動的⇒静的の変換の記法は、こんな感じ。

※&%{QUERY_STRING}で、クエリがある場合ににも対応している。

このルールで、http://hogehoge.com/get/DVD/100.hml を、http://hogehoge.com/get.php?id=DVD&name=100に飛ばせる

+++

上記の場合は、区切り文字に「/(スラッシュ)」を利用した。

しかし、nameが商品名で、最近人気のipod nanoの機種名「Apple iPod nano MA978J/A」を入力したとする。

URLは「http://hogehoge.com/get/Apple iPod nano MA978J/A/100.html」となる。

このURLは上手く動かない。

何故なら、区切り文字に使われている「/(スラッシュ)」が商品名に含まれていて、URL内に余分な「/」が増えてしまったからだ。

この場合、
「http://hogehoge.com/get.php?id=Apple iPod nano MA978J/A&name=100」
に飛ばしたいはずが、
「http://hogehoge.com/get.php?id=Apple iPod nano MA978J&name=A/100」
に飛んでしまう。

この問題を回避する方法として、事前に商品名内の「/」スラッシュを、商品名として通常は使われない文字列、たとえば「:@:」などに変換しておき、利用する直前で「/」に戻す方法もある。

しかし、この方法はあまり美味しくない。

なぜなら、URL中に商品名+型番を入れると、SEO的に有利と言われているからだ。
特に「MA978J/A」などといった型番のみの検索に対して、効果が高いはずだ。

しかし、「http://hogehoge.com/get/Apple iPod nano MA978J:@:A/100.html」にしてしまったら、効果は半減してしまう。

よって、区切り文字には、商品名として利用されにくい文字を利用したほうが良い。

たとえば利用されないも区切り文字列として、上記の「:@:」を選んだとする。

しかし、これでは見た目にも悪い。できればもっとシンプルで、わかりやすい一文字にしたいところだ。

そこで私がお奨めしたい文字は、「_(アンダースコア)」だ。

アンダースコアを商品の型番に利用しているケースは、かなり少ないはず。

以前は、検索エンジンに区切り文字として認識されておらず、敬遠されていた文字だ。現在は、主要な検索エンジンで、区切り文字として認識されている。

ネタ元はこちら
⇒ http://www.sem-r.com/0702/20070725092702.html
⇒ http://www.suzukikenichi.com/blog/%E3%80%8C%EF%BC%8D%EF%BC%88%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5%E3%80%81%E3%83%8F%E3%82%A4%E3%83%95%E3%83%B3%EF%BC%89%E3%80%8D%E3%81%A8%E3%80%8C%EF%BC%BF%EF%BC%88%E3%82%A2%E3%83%B3%E3%83%80%E3%83%BCe/

+++

ウチのサイトの多くは区切り文字として「-(ハイフン)」を利用していた。

けど、ハイフンって商品の型番で結構利用されている

たとえば「RX-78」とか「MS-05」w

それに気がつき、最近あわてて変更した。

もちろん301リダイレクトを利用して、旧アドレスから新アドレスに変更している。

その方法も後日詳しく説明する予定。

SEO
スポンサーリンク
当ブログの記事に共感していただけたら、また読みに来ていただけると嬉しいです。読んでくれる方の数が多くなると、更新するヤル気に繋がります(^^)
フォロー、ブックマークしていただけると、ブログ更新を見逃しません
わかったブログ

コメント

タイトルとURLをコピーしました