URLを変えるな!(3) - 後悔しないためのWebデザイン

前回から続き) さて、URLを変えないための、あるいは変えてしまったときにその悪影響を最小限にとどめるための、いくつか方策がある。体系的なものではないので以下適当に羅列する。

まず筆者が最近見かけたのは、とある企業のケースだ。その企業では各地方の支店ごとにページをつくっていた。こんな感じ。

  • 東京支店→http://www.example.co.jp/branch/tokyo.html
  • 大阪支店→http://www.example.co.jp/branch/osaka.html
ところが、なんらかの理由でPHPを使いたくなったらしい。で、こうなった。
  • 東京支店→http://www.example.co.jp/branch/tokyo.php
  • 大阪支店→http://www.example.co.jp/branch/osaka.php
結果、URLが変わってしまった。それまでの被リンクやメール上のURL、紙媒体に印刷されたURLもすべてパーである。

こういう事態を防ぐには、そもそもはじめからこうしておくことだ。

  • 東京支店→http://www.example.co.jp/branch/tokyo/
  • 大阪支店→http://www.example.co.jp/branch/osaka/
ファイル名で区別するのではなくてディレクトリで切る。それだけ。こうすることで、/branch/tokyo/index.html が /branch/tokyo/index.php になっても /branch/tokyo/index.jsp になっても /branch/tokyo/index.cgi になっても、URL的には変わらない。apacheでいうところのDirectoryIndex設定のフル活用。

MovableTypeであれば記事の公開設定で次のようにしておくことで上で説明したように「ファイル名できるのではなくディレクトリ名で切る」ようなことが可能である。
200610-url.png
「%e/index.html」とはつまり記事番号を名前とするディレクトリを掘ってそこにindex.htmlというファイル名で記事ファイルをつくれ、という意味である。

実は楽天市場も同じようなことをやっている。楽天市場の店舗の商品ページのURLはすべて http://www.rakuten.co.jp/店舗名/12345/98765/ になっているが、べつに http://www.rakuten.co.jp/店舗名/12345/98765/index.html でもアクセスできる。index.phpとかindex.jspでもないことから推定されるその意図は? なぜ http://www.rakuten.co.jp/店舗名/12345/98765.htmlではないのか? 世のWebデザイナーもエンジニアも、その裏にある設計思想というものについてよく考えるべきだろう。

もちろん、上で紹介したような原始的な(?)方法だけでなく、Apacheで言うMultiview設定を使うとか、.htmlであってもPHPスクリプトとして処理されるように設定してしまうことで従来のファイル拡張子の変更を不要にするとか、そもそもファイルの拡張子なんて無くしてしまうとか、技術的な手段は他にもいろいろある。詳細説明は割愛。

なお、もしも可能であれば、一番上の例では

  • 東京支店→http://tokyo.example.co.jp/
  • 大阪支店→http://osaka.example.co.jp/
のようにするとURLが短くなって良いのかもしれない。シンプルイズベスト。 サイトのアタマはwwwでなければならないと固く信じている人にとってはわけがわからないかもしれないが。

さて、不幸にしてURLが変わってしまった場合にはどうしたらいいのか? 404エラーページをカスタマイズしてトップページへ飛ばすリンクをそこに埋めるだけでお茶を濁すとかやってないで地道な転送設定を全力でやるべきだろう。 現実には何もされないケースがほとんどだが。

何かWebプログラミング的なテクニックで乗り切ることが可能なのであればそれに越したことはないが、そうでない場合にはWebサーバーの特殊設定で乗り切るしかない。apacheであれば httpd.conf あるいは .htaccess の設定で次のようにする。

Redirect permanent / http://new.example.com/ (ドメイン名だけ変わった場合)
Redirect permanent /fuga/hoge.html /nani/doko.html (ディレクトリ、ファイル名が変わった場合)
Redirect permanent /fuga/hoge.html http://new.example.com/nani/doko.html (何もかも変わった場合)
このように「Redirect permanent なんとか」を1,2行書けば済むか2、300行書くかはケースバイケースだが、少なくとも1000行以下ならば手作業でもなんでも意地でも書くべきだろう。他にもRedirectMatchとかいろいろ便利な方法はあるがここでは割愛。

何を考えているのか知らないが、無意味にサイトをいじくりまわしてURLをコロコロかえてしまうわりに、SEOが悩みなんですよ、とのたまうWebサイト担当者は意外と多い。自分で自分の首を絞めている典型である。(しかもそれに気づいてすらいないのかもしれない)

最後に、非常に重要な示唆に富む次の二つのページを紹介しておく。いずれも海外のサイトの日本語訳である。

これらを読んだ世のWebデザイナーやエンジニアに、URL(URI)はWebサイト構築における非常に重要な設計対象のひとつであることを再認識してもらえれば幸いである。

see also:
Alertbox: リンク切れとの戦い(1998年6月14日)
Alertbox: ユーザインターフェイスとしてのURL(1999年3月21日)

トラックバックURL

このエントリーのトラックバックURL:
http://www.ywcafe.net/mt/mt-tb.cgi/650