ページを0秒でリダイレクトする方法はいくつかありますが、301リダイレクトを使うとブラウザに強制的にキャッシュされてしまい、大げさに言えば半永久的にブラウザが古い301リダイレクト設定を読み続けます。
そのため、リダイレクト先のURLを変更しても、以前リダイレクトをブラウザで読み込んでいる閲覧者は永久的に古いリダイレクト先が表示され、古いページを見続けることになります。
一度読み込んでしまった301リダイレクトのキャッシュを書き換えたり削除したりする方法はありません。301リダイレクトはページの情報やリンクパワーなども引き継がせる、サイト移転やページ移転に最適なリダイレクト方法ですが、実際は永久リダイレクトとなるため、危険が伴います。
サーバー設定、htaccessの設定でブラウザのキャッシュをこちらから削除することはできない
1度読み込んでしまったhtaccessの301リダイレクト設定を、WEB製作者側で何とか上書きしたり、キャッシュをリフレッシュさせて削除する、これを皆が考えますが、それらは一切できないようになっています。
301でリダイレクト元A⇒リダイレクト先Bを読み込んだ場合
- リダイレクト元A⇒リダイレクト先C の設定に変更しても機能しない
- リダイレクト先Bを削除しても存在しないリダイレクト先Bを表示する
- htaccess自体をサーバーから削除してもリダイレクトしてリダイレクト先Bを表示する
ブラウザが頑なに301リダイレクトのキャッシュを維持し続ける
一度301リダイレクトを読み込んだブラウザは、自分でキャッシュを削除しない限り半永久的に残り続けます。
Cache-Control: no-storeやno-cacheなどの設定も無意味。転送元のhtml削除や転送先html削除も無意味です。
各個人のブラウザのキャッシュを消してもらうしか無い
301リダイレクトをブラウザで一度でも読み込んでしまった場合、既に手遅れなので各個人のブラウザのキャッシュを削除してもらう以外に方法はありません。
キャッシュの削除方法
ChromeとEdge・・・F12を押したあと、更新ボタンを右クリックして「キャッシュの消去とハードの再読み込み」をクリックすると永久キャッシュされてしまった301リダイレクト設定が消えます。
Firefox・・・「設定」の「プライバシーとセキュリティ」の「履歴」を消去すると永久キャッシュされてしまった301リダイレクト設定が消えます。
301の永久キャッシュは地獄
安易に、というよりも間違えて301リダイレクトを設定しある程度期間が経過してしまうと、多くの閲覧者のブラウザに301リダイレクト設定が永久保存されてしまいます。自らキャッシュを完全に削除する人は稀なので、後々301リダイレクト先のURLを変更したとしても、既に過去の301リダイレクトを永久キャッシュしてしまった人たちは古いアドレスに自動転送されたままになってしまいます。
301の永久キャッシュ仕様は場合によっては取り返しのつかないことになるため、一時的に転送するなら302を使います。302リダイレクトはキャッシュさせないリダイレクトなので、転送先URLをコロコロ変える場合などに使います。
Tweet
シェアしていただけると嬉しいです
あわせて読みたい関連記事一覧
301リダイレクト設定したhtaccessのキャッシュはどうやっても消えない
iPhone Safariでz-indexが効かず重なり順が正常に動かない場合の対処法
WordPressとロリポで「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」が出たときの対処方法
Google reCAPTCHAがIE11で表示されないときに確認すべきところ
InstanceBegin template="○○" codeOutsideHTMLIsLocked="false"が邪魔
IEでdiv要素がmarign autoで中央寄せにならない場合の対処法
google sitemapで『EntityRef: expecting ';'』とエラーが出たときの対処法