.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リダイレクトを利用して、旧アドレスから新アドレスに変更している。
その方法も後日詳しく説明する予定。
コメント