Web開発とかWebアプリを作ってると、
必ずどこで リダイレクト が必要な場面があるはず
PHP はもちろん、JavaScript でもよく使います。
▲ この記事でも紹介したように、JS でも PHP でもリダイレクトは必須テク
ただ問題なのが、
Chromeだと リダイレクトキャッシュ が残ってしまうこと
これが意外と厄介で困った問題なんです。(FireFoxとかOperaでは起きない)
そこで、 リダイレクトキャッシュ問題と解決策 について詳解します。
このページの目次
リダイレクトキャッシュ問題が発生する原因
例えばPHPで次みたいなコードを書いたとします。
何の変哲もない、別ページにリダイレクトするようなコード
1 2 3 |
header("HTTP/1.1 301 Moved Permanently"); header("Location: /path/to/hoge.php"); exit; |
リダイレクト自体は難しくないです。
そしてリダイレクトが成功(失敗時も?)すると、
Chromeは親切にリダイレクト履歴を保存してくれるんです。
まあページ表示速度を速くなるから、ユーザーとか読者側にとっては便利なもの
ただ開発者側からすると、次の問題の原因 になることも・・・
- リダイレクト処理ができずに無駄に悩む
- なぜかコードを変更しても反映されない
こういう問題の温床になるのが困ったところですね。
でもこのリダイレクトキャッシュが残る問題、
ある方法を試せば一発どころかワンクリックで削除できるようになります。
リダイレクトキャッシュを削除する2つの方法
1.Chromeの設定から手動で削除する方法
まず1つめは Chrome から手動削除する方法
こっちは設定画面を開かないといけないので、少し面倒です。
その手順は次の通り
まずアドレスバーから次の 閲覧履歴の設定画面URL にアクセス
1 |
URL : <a href="chrome://settings/clearBrowserData" target="_blank" rel="noopener noreferrer">chrome://settings/clearBrowserData</a> |
そうすると「閲覧履歴データの削除」の画面が出てくるはず
その画面で「Cookieと他のサイトのデータ」にチェックを入れ、「データを削除」ボタンを押せば完了
▼赤枠で囲った部分をクリック
期間を「全期間」に設定しているなら、かなり時間がかかるかも
それなりに時間がかかるので、しばらく待てばいいと思います。
そしてリダイレクト用コードを実行すれば、リダイレクトが正常に動くはず
手動でリダイレクトキャッシュを削除する方法はこんな感じです。
ワンクリックで削除するなら Clear Cache が便利
まあ手動でもキャッシュ削除はできるんですが・・・
いちいち設定画面開いてアレコレはやっぱ面倒ですよね。
なるべくなら一発でキャッシュ削除したい
そんなときは Clear Cache っていう拡張機能が超便利です。
使い方は以下の通り
まず次URLから Clear Cache をインスト―ル
https://chrome.google.com/webstore/detail/clear-cache/cppjkneekbjaeellbfkmgnhonkkjfpdn
▼ Clear Cache のダウンロード画面
インストールが終わったらChrome右上に リサイクルマーク が表示されたはず
あとはリダイレクトキャッシュを削除したくなったら、
右上にあるリサイクルボタンをぽちっとを一押してやればOK
▼このボタンを押すだけ!
これだと設定画面を開かなくいいから楽ですね。
もしワンクリックすら面倒なら、
次の手順で ショートカットキー とかも設定できます。
- Chromeの設定画面をひらく
- 「その他ツール」から「ショートカット」をひらく
- 一番下の「キーボードショートカット」をクリック
- 拡張機能用ショトカキー登録画面が出てくる
- そこで Clear Cache にショトカキー登録してやればOK
設定するキーはなるべく他と被らないものにしたほうがいいです。
例えば Clear Cache だから Ctrl + Alt + C とかだと分かりやすいかも
そこは自分の好きなように設定すればいいと思います。
ここまでのまとめ
Chromeのリダイレクトキャッシュは場合によっては厄介なモノ
もしPHPとかJS内でリダイレクトがうまくいかない・・・イライラ・・・
そういう場合は リダイレクトキャッシュ を疑ってみてください。
あとコード自体に問題がないかの吟味も忘れずに
もしリダイレクトがうまくいかないなら、次記事もご覧ください。
▼PHPでリダイレクトが上手くいかないときの対処法
コードは思った通りに動きません、書いた通りに動くものです。