中さんの404を上位階層リダイレクトする話

有用な情報を提供していただいているところ大変申し訳ない感じですが、404をリダイレクトするということには反対で正直「404が発生したときにやるべきではないこと」に分類されるのではないかと思います。

菊池さんが書かれているように404のレスポンスコードをちゃんと返すという話もありますが、ユーザに404であることを認識させるべきだと私は思っています。

404にあたったとして、いきなりリダイレクトをしてしまうと何故リダイレクトされたのかを認識できなくなりユーザに無用な混乱を引き起こします。そもそも大抵のリダイレクトはユーザにとって予期せぬ遷移なのですが。

例えば、あるコンテンツにアクセスしようと考えアドレスバーにURLを入力し何らかの理由で404が発生したとします。ユーザは入力した結果、特定のコンテンツが表示されることを期待していますが、リダイレクトされると期待したコンテンツではない「何か」が表示されます。 ユーザは何故期待されるコンテンツではないものが表示されたことに悩むことになります。別にインデックスを見たいわけではないのです。

ここで普通の404ページが表示された場合、ユーザはコンテンツが見つからない状態であることを経験的に理解できます。このとき「タイプミス?コンテンツが削除された?」という感じに自分が入力したものを確認することができます。

そこでわざわざ確認させるのが手間になるだからリダイレクトということなのだと思いますが、それであれば404ページを動的に生成し、以下のようにすれば解決されると思います。

アクセスしようとしたコンテンツ: /path/to/file.html

お探しのコンテンツは見つかりませんでした。アドレスが正しいかの確認していただくか、以下の近い場所等から再度お探しください。

Webサイトの検索を行ってコンテンツを探すこともできます。

検索文字列:

文や書き方とかはともかくとして、要するに上位階層へリダイレクトするのではなく上位階層や近いコンテンツ、いっそタイプミスとかも直してサジェストしてあげればよいのです。 そもそもタイプミスがあったとしてもすぐに気づけるような程度であれば、上位階層からたどりなおすよりちょこっと直すほうがよっぽど早いですしね。

リダイレクトしてしまうと、「あ、1文字足りなかった足そう」と思っても戻るボタンを押して残念な思いをすることにもなります。結構普通に気がつくときに限って以下略。

ついでに言うとmeta要素によるリダイレクトも反対です。@niftyのユーザ向けのスペースでタイプミスをしてトップへ飛ばされてムキーってなった人は多いはず。なまじ待ち時間があると、どうすればいいか考えてしまい考えている段階で飛ばされるのでたちが悪いです。

単純に過去の経験から言って404からリダイレクトされてうれしかった例は皆無なのでオススメしないのです。ただ自分のサイトのようなよく知ったサイトだと何が出てくるか・出てきた結果どうすれば辿り着けるのかなんとなく分かるので一見便利になるように思えるような気はするんですよねぇ。