Chromeでリダイレクトのキャッシュを停止するにはどうすればよいですか?


415

redirects(きれいなURLに)を使用しているWebアプリケーションに取り組んでいます。

リダイレクトが機能する方法でロジックをデバッグしようとしています。ただし、Google Chromeはリダイレクトを記憶し続け、コードを変更した後でも同じ方法でリダイレクトします。

これにより、トラブルシューティングが非常に難しくなっています。

たとえば、にリダイレクト/thisする場合/that、コードを/thisもうリダイレクトしないように変更します。Google Chromeはまだにリダイレクトしてい/thatます。リダイレクトがキャッシュされるなどのように。これをオフにする方法はありますか?


再起動してもこれは起こりますか?新しいセッションで再起動すると停止します
ランダム

1
@ランダム、クロムを再起動すると修正されるようです。しかし、私は通常、多くのウィンドウを開いています(つまり、ドキュメント、データベース接続、チュートリアル、作業中のページなど)。私はすべてのウィンドウを閉じ続けなければならないのは理想的だとは本当に思っていません。ありがとう。
JDイザックス

2
回避策:テスト中に302(一時)リダイレクトを使用し、完了したら301(永続)に切り替えます。(注意:一部のブラウザー(Firefox)は、同じページのhttpバージョンからhttpsバージョンに移行するときに302リダイレクトもキャッシュします。)
TRiG

1
www.mywebsite/?someparam=somevalue私のために新しい作品を入力する
ムスタファ14年

1
@JDIsaacksデバッグ専用にChromeを使用できます(つまり、Chrome Canary)
athosbr99

回答:


329

Google Chromeは301リダイレクトキャッシュします。これを回避し、タブを開いたままにするには、ブラウザのキャッシュをクリアするだけです。

ChromeメニューChromeメニュー> [設定] > [詳細設定を表示...]> [プライバシー]> [ 閲覧データを消去 ...]をクリックします

他に何を選択しても、「キャッシュされた画像とファイル」がチェックされていることを確認してください。

次に、[ 閲覧データ消去 ]をクリックすると、再度テストできるようになります。

リダイレクトに従っている場合は、過去1時間のデータを削除するだけです。

または、シークレットモードでテストして開発します。ブラウザが閉じられた後、キャッシュがフラッシュされます。


3
Chromeの最新バージョンでは、このオプションは「キャッシュを空にする」の代わりに「キャッシュされた画像とファイル」になります
ダンR 14

23
シークレットモードでもリダイレクトされ続けます。
ガイア14

2
@Gaia yea、それはChromeシークレットの問題のようです。テストするだけの場合は、Firefoxを使用することをお勧めします。Firefoxのプライベートブラウジングは正常に動作します:)
チャンティアル

10
HTTP 301は永続的に移動されるため、応答のキャッシュは完全に許可されます。あなたが応答をキャッシュしたくない場合は、302または307試みるen.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirectionを
からCVn

7
これのキーボードショートカットはCtrl+ Shift+ Deleteです。
0xcaff

151

これは、すべてのブラウジングデータをクリアせずに、リダイレクト用のChromeのスティッキーメモリをクリアする確実な方法です(現在のトップアンサーで使用されている方法)。

  1. 開発者ツールパネルを開きますoptioncommandiMacまたはctrlshiftiWindows)

  2. リロードアイコンをクリックして押したままにします ここに画像の説明を入力してください

  3. メニューが開きます

    ここに画像の説明を入力してください

  4. このメニューから3番目のオプションを選択します(「空のキャッシュとハードリロード」)

これら3つのオプションがどのように異なるかについての優れた説明を次に示します

PS:リダイレクトの後にChromeが続くたびにこれらの手順を実行する必要がないように、DevToolsでキャッシュを無効にします。DevToolsが開いている間、Chromeはリダイレクトキャッシュをバイパスしますこの回答による


1
余談ですが、これはMacでは使用できません。
アルジャン

5
これは、キャッシュされたリダイレクトを常に削除するわけではありません
Claudiu Creanga

7
Macで使用できますが、メニューは開発ツールを開いている場合にのみ使用できます。これはWindowsでも同じかもしれません。
パーシー

1
@ArjanそれはMacで利用可能ですsuperuser.com/questions/304589/を
ガイア

4
Mac OS X、ヨセミテ。httpからhttpsへの永続的なリダイレクトとの戦いで、このオプションのみが機能しました。「キャッシュを無効にする(DevToolsが開いている間)」を含む他のすべては、違いはありませんでした。
カルレス・サラ

115

完璧なソリューションではありませんが、偽のクエリ文字列を渡すか、既存のクエリ文字列に偽のパラメータを追加することで、Chromeがキャッシュされたリダイレクトを使用するのを防ぐことができました。たとえば、?クエリ文字列がqでないURLの末尾にシンプルを追加すると、Max OS XのChrome 30で機能しました。


10
うん、これは動作します。example.comになりexample.com?ます。束の最も簡単なI'ts
fregante

2
これは素晴らしいトリックです。私はあなたが無限にこれを使用することができ想定し?abc?abc2...等
brentonstrine

2
これはうまくいきませんでした。別のポート(:8080)を使用しても、Chromeのバグのように見えるhttpsに変更されました。
jwadsa​​ck

私はすでに同じことをやってんだけど、それは常に動作しない、時々私は、Webページの新しいバージョンを入手するには、Ctrl +シフト+ R(CTRL + F5)を押す必要がある、または一部のページは、ページ内に含ま
M98

キャッシュされたワイルドカード301がある場合、TLD後にすべてを転送することを「記憶」しているため、これは機能しない可能性があります。
ドーピン

92

これには、「修正なし」のChromiumバグがあります

それが予想される動作です。

ご了承ください:

  1. キャッシュコントロールヘッダーを301に追加し、それらを追跡します(有効期限など)
  2. 問題のリソースがサブリソースである場合、ページをリロードすると、サーバーでリダイレクトが再検証されます。
  3. キャッシュ全体を失う必要はありません。リダイレクトに従って、最後の1時間を削除してください。

「最後の1時間を削除」とは何ですか。手段?どうやるか?
ミカエルメイヤー

1
@MikaëlMayer[履歴]> [閲覧履歴の消去]をクリックすると、データを削除する時間枠を選択できます(「過去1時間」、「過去1週間」など)
dbr

番号..!サイトの閲覧データを消去しても、301リダイレクト動作削除されません。とにかくChromium 64.0.xではない
パトリックトケフ

「1時間」をクリアすると、すべてのGoogleサービスとアカウントからログアウトできます。なんて良いアドバイス...
ルチアーノファンツッツィ

>キャッシュ全体を失う必要はありません。リダイレクトに従って、最後の1時間を削除してください。それは彼らが文句を言わない機能である「最後のリダイレクトを削除する」よりもさらに悪い。
rox0r

66

DevToolsで[キャッシュを無効にする(DevToolsが開いている間)]オプションが有効になっている場合、DevToolsを開いておくだけで、セッションを絶えず破棄せずにリダイレクトキャッシュをバイパスできます。


9
注:devToolsが開いている場合、キャッシュを削除する高速な方法があります。右クリックで更新ボタンをクリックし、フルリロードを選択してください;)
user65130

5
これは常に機能しません。すべてのキャッシュを削除し、それでもリダイレクトします。シークレットモードでのみ動作し、一貫した動作が得られます
Claudiu Creanga

2
なぜこれが一番の解決策ではないのですか?他のものは比較するとひどいです!
ブライアン

4
もう機能しない...おそらく2014年に働いた
ロード・ロー。

@LordLoh。Chromeの最新バージョンでこれを試したところ、予想どおりに機能しました。devtoolsが閉じられると、リダイレクトはキャッシュされます。ツールを開いた状態でページをリロードしてもリダイレクトされません。
マイクゴスマン16

20

ChromeはHTTPリダイレクトをキャッシュし、リダイレクトが変更された場合、サイトでのチェックを停止します。リンクにアクセスする前にリダイレクトが発生するため、修正する最も簡単な方法(サイトを訪問し、ハードリフレッシュを強制する)を使用できないため、これはイライラする可能性があります。これは修正されない問題です。

これを回避するには、ここで説明するように閲覧データを消去するか、以下の手順に従って履歴が失われないようにします。

  1. Chromeデベロッパーツールを開きます 開発ツール

  2. [設定]をクリックします 設定

  3. [ キャッシュを無効にする]をオンにします(DevToolsが開いている間) 無効にする

  4. 目的のサイトにアクセスすると、キャッシュの問題が解決されます。


2
ネットワークタブにも「キャッシュを無効にする」オプションがありますが、これは同じオプションです。リダイレクトのデバッグには、「ログの保存」も使用することをお勧めします。
トレンドフィッシャー

15

chrome:// net-internalsに移動し、右端でドロップダウンを開いて[キャッシュをクリア]を選択します。バージョン48の時点で、これはキャッシュされた301(永続的なリダイレクト)をクリアするために私が働いた唯一のことでした。

更新:残念ながら、バージョン71(2018年12月)の時点で、Googleはnet-internals機能を削除しました。


1
Chrome 56で動作します
spencer.sm

Chrome 67
SCOで

Chrome 71では動作しません。net-internalsイベントビューアーと関連機能は削除されました。
userlond

8

.devドメインは、Chrome 63以降でHTTPSの使用を強制されます

2017年12月にリリースされたChrome 63以降、.dev(および.foo)で終わるすべてのドメインは、プリロードされたHTTP Strict Transport Security(HSTS)ヘッダーを介してHTTPSの使用を強制されます。

詳細はこちら:https : //ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/


これは確かに私の犯人でした!私は何が地獄が起こっているのかを把握しようとして何時間も費やしています。これを投稿してくれてありがとう!
ジャバリ

この回答にはさらに投票が必要です。質問者が抱えていた問題ではないかもしれませんが、検索結果でこの答えを見つけるのは多くの開発者にとってでしょう。
bp。

神!誰がこんな素晴らしいアイデアを思い付くでしょうか!
パベルニエドバ

7

Chromeの単一ページのリダイレクトキャッシュをクリアするには、ソース表示して、ハードリフレッシュを実行し(CTRL + SHIFT + R)ます。

これは、ソースブラウザが301リダイレクトを自動的に追跡しないために機能します。


4
Chrome 25で動作しませんでした
swrobel

3
リダイレクトがすべてのページに対するものである場合、これは機能しません。wwwがあります。->いいえ、www。リダイレクト-リダイレクトは最初のヒットであるため、何も更新できません。ページにアクセスして更新しようとするたびに、301の後に続きます。
イアングレインジャー

1
@Ianアドレスバーにview-source:www.example.comと入力するとどうなりますか?リダイレクトせずに更新できますか?
マシューブラックフォード

1
@MatthewBlackford AFAICT同じこと、私は実際にリダイレクトされたページのソースを取得します。TBHですが、私のテストがこれほどすばらしいものであったかどうかはわかりません。この問題を「修正」するために、閲覧履歴を削除しました。
イアングレインジャー

2
これは、javascriptおよびメタタグのリダイレクトでのみ機能します。HTTPリダイレクトはまだ続いている
fregante

6

ここで説明しように、HSTSが原因である可能性があります

これを回避するために、次のことを行いました。

Chromeのアドレスバーに「chrome:// net-internals /#hsts」と入力します。ページの一番下にQUERYドメインテキストボックスがあります-サイト(localhostなど)がブラウザに認識されていることを確認します。ドメインは、上記のテキストボックスを使用します


1
ねえ、ありがとう。これは、突然のhttpsリダイレクトキャッシュに役立ちます。
ルベロイド

5

ChromeまたはFirefoxで、「view-source:redirect.yoursite.com」と入力してEnterキーを押すと、リダイレクトを更新できます。次に、そのページを更新します。これで、ChromeまたはFirefoxでリダイレクトが更新されるようになります。


これは私のために働いた唯一の答えです。
JaredThirsk

4

リダイレクトが期待どおりに機能していることを確認したいだけであれば、おそらくwgetなどのコマンドラインツールを使用する方が簡単です。応答ヘッダーを検査でき、リダイレクトはキャッシュされません。


3

開発目的のために、ChromeでDevTools設定を開き、「キャッシュを無効にする」をチェックすることをお勧めします。その後、30xリダイレクトはキャッシュされず、.htaccessファイルなどをデバッグできます! ここに画像の説明を入力してください


奇妙なことに、このオプションは役に立ちません。キャッシュを無効にしましたが、まだネットワークタブに表示されます301 Moved Permanently (from disk cache)
mgutt

これは、ネットワークタブが開いているときに[キャッシュを無効にする]をクリックした場合とまったく同じです。いいえ-リダイレクトをクリアしません。
bshea

1
  1. に行く chrome://settings/search#clear%20browsing%20data

  2. [閲覧履歴データを消去]をクリックします

  3. [キャッシュされた画像とファイル]をオンにします(必要に応じて残りのチェックを外します)

  4. [閲覧履歴データを消去]をクリックします

ここに画像の説明を入力してください


1

最も簡単な方法、ハードリフレッシュ。ホールドCtrl+ R数秒。これにより、リダイレクトと静的リソースがクリアされます。


単に押すのではなく、なぜそれを保持するのCtrl+Rですか?
グロノスタジュ

@gronostaj私の答えは単純明快ではなかったのですか?? 。保持しないと、通常の更新になります。キャッシュされたリソースまたはリダイレクトをクリアしません。
Ryu_hayabusa

ホールドは、複数回押すのと同じです。メモ帳を開いてホールドするとR、複数のRが表示されます。これはまったく同じですが、Ctrlです。Ctrl+を保持することRは、1秒間に数十秒間押すこととまったく同じです。それはスマートではなく、組み込みの更新メカニズムを乱用し、文書化されていない動作に依存しています。
グローノスタジュ

@gronostajはい、これは文書化されていない動作です。受け入れられた答えは私にはうまくいきません。それが私がここでそれを共有した理由です。キャッシュされたリダイレクトをクリアする他の方法はありません。他の方法を知っているなら、気軽に共有してください。
Ryu_hayabusa

試してみましたが機能しませんでした(ドメイン全体で301リダイレクト)。
mgutt

1

キャッシュ全体を失いたくなく、リダイレクトがまだキャッシュに残っている場合は、view-source:バージョンのURLにアクセスしてみてください。これにより、同じURLのリダイレクトキャッシュが更新されました。


0

このページですべての回答を試してみましたが、Windowsのコマンドラインウィンドウでflushdnsを実行するまで何も動作しませんでした。

C:\Users\DBashyal>ipconfig /flushdns

Windows IP Configuration    
Successfully flushed the DNS Resolver Cache.

参考までに、私はすでにこの回答でDisable cache述べたようにチェックしました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.