23時22分20秒 [Web関連]
ウェブ上で存在しないページにアクセスすると、たいてい「Not Found」エラーが表示されます。ウェブサーバが吐き出すエラーページがそのまま表示されるサイトもあれば、独自にカスタマイズしたエラーページが表示されるサイトもあります。
どちらにしても、通常はエラーが表示されたからといってURLは変化しません。
ただエラーメッセージ(ページ)が表示されるだけです。
例えば、ブラウザを使って「 http://www.example.com/page.html 」というURLにアクセスしたとして、そこに何もデータがなければ、ブラウザのアドレス欄には「 http://www.example.com/page.html 」というURLが表示されたまま、Not Foundエラーが表示されます。
しかし、たまにエラーメッセージ用に作られた専用ページ(URL)にリダイレクトさせる方法でエラーページを表示するサイトがあります。
例えば、ブラウザを使って「 http://www.example.com/page.html 」というURLにアクセスしたとして、そこに何もなければ、自動的に「 http://www.example.com/error/404.html 」みたいなページに移動させるものです。
こんな感じでリダイレクトされると、「どこにアクセスした結果、Not Foundエラーが発生したのか」が分からなくなるんですよね……。ブラウザの「戻る」機能でエラーが発生したページに戻れるならまだマシですが、履歴に残らないように移動させられるとさっぱり分かりません。
見たいページがウェブ上から消されていても、Googleなどのキャッシュにまだ残ってる場合があります。Not Foundエラーが表示されても、Googleツールバーを使ってそのURLのキャッシュに簡単にアクセスできるので、その方法で過去のページを閲覧することができます。(もしGoogleのキャッシュに残っていれば、の話ですが。他には Internet ArchiveでURLを指定して探す手もあります。)
ところが、リダイレクトされちゃうとその方法は使えません。(URLが変わってるから)
もちろん、前のページに戻って、自分のクリックしたリンクが何だったのかを調べればいいんですけど。それは、ちょっと面倒です。リダイレクトせずにエラーを表示させてくれていれば、そんな手間はかけずに済むわけですし。
ブラウザで開いているウインドウ(タブ)が1つだけなら、前のページに戻って自分のクリックしたリンクを見ればすぐにURLは分かるのでまだマシですが、同時に複数のタブ(やウインドウ)を展開してリンク先にアクセスしている場合にはちょっと困ります。
たくさんリンクがあるページでは、ブラウザのタブ機能を使って、複数のリンク先を複数のタブに一気に表示させることがよくあります。この場合、どのタブがどのリンクを辿った結果なのかなんて把握していません。
このとき、エラー用ページにリダイレクトされちゃうと、どこにアクセスした結果エラーになったのかが分からないんですよね。つまり、「どのリンク先だけ読めていないのか」が分からないことになってしまいます。
これは、ちょっとストレス溜まるんですよね……。(^_^;;;
エラーは、リダイレクトさせずにその場で表示させて欲しいです。
なんでリダイレクトさせるんだろうなあ……?
この日記へのコメントはお気軽に! コメント数:2件
そうですね。.htaccessファイルを使ってリダイレクトさせた場合は戻れないですね。
JavaScriptを使った場合でも、location.href.replace を使って移動させると戻れない(履歴に残らない)んだった気がします。
HTMLのmeta要素を使って指定秒数後に移動させる場合は戻れますが、秒数が0秒に指定してある場合は、戻ってもすぐに進んじゃって(事実上)戻れないということも。^^;;;
投稿者 にしし : 2008年09月29日 01:51
コメント数: 2件
リダイレクトのせいか「戻る」を押しても戻れないときってありますよね。
投稿者 ひかりんご : 2008年09月27日 16:03