Como posso fazer o Chrome parar de fazer o cache de redirecionamentos?


416

Estou trabalhando em um aplicativo da web que está usando redirects(para URLs bonitas).

Estou tentando depurar a lógica da maneira como os redirecionamentos estão funcionando. No entanto, o Google Chrome continua lembrando os redirecionamentos e, mesmo depois de alterar o código, redirecionamos da mesma maneira.

Isso está dificultando a solução de problemas.

Por exemplo, se eu redirecionar /thispara /that, altere meu código para NÃO redirecionar /thismais. O Google Chrome ainda está redirecionando para /that. Como o redirecionamento é armazenado em cache ou algo assim. Existe uma maneira de desativar isso?


Isso ainda acontece quando você reinicia? Ele deve parar depois que você reiniciar com uma nova sessão
— random

1
@ aleatório, reiniciar o chrome parece corrigi-lo. No entanto, normalmente tenho muitas janelas abertas (por exemplo: documentos, conexões db, tutoriais, a página em que estou trabalhando, etc.) Se estiver solucionando problemas, podem ser necessárias várias tentativas antes de descobrir o que está acontecendo. Eu realmente não consideraria ideal ter que fechar todas as minhas janelas. Obrigado.
— JD Isaacks

2
Solução alternativa: use redirecionamentos 302 (temporários) durante o teste e alterne para 301 (permanente) quando terminar. (Advertência: alguns navegadores (Firefox) armazenarão em cache até 302 redirecionamentos quando passarem das versões http para https da mesma página).
— TRiG

1
Entrando em uma nova www.mywebsite/?someparam=somevalueobra para mim
— Mustafa

1
@JDIsaacks você poderia usar um Chrome exclusivamente a depuração (ie Chrome Canary)
— athosbr99

Respostas:


329

O Google Chrome armazenará em cache seus redirecionamentos 301 . Para contornar isso e manter as guias abertas, basta limpar o cache do navegador.

Menu Chrome Menu do Chrome> Configurações> Mostrar configurações avançadas ...> Privacidade> Clique em Limpar dados de navegação ...

Qualquer outra coisa que você selecionar, verifique se "Imagens e arquivos em cache" é uma opção marcada.

Em seguida, clique em Limpar dados de navegação e você poderá testar novamente.

Se você acabou de seguir o redirecionamento, precisará excluir os dados da última hora.

Como alternativa, teste e desenvolva no modo de navegação anônima. Lá, o cache é liberado depois que o navegador é fechado.


3
Versão mais recente do Chrome, esta opção seria "Em cache imagens e arquivos" em vez de "Esvaziar o cache"
— Dan R

23
Continuo sendo redirecionado, mesmo no modo de navegação anônima.
— Gaia

2
@ Gaia sim, isso parece ser um problema no Chrome anônimo. Se você está apenas testando, convém usar o Firefox para isso. Firefox navegação privada funciona :) bem
— chhantyal

10
Observe que o HTTP 301 é movido permanentemente, portanto a resposta em cache é perfeitamente permitida. Se você não deseja que a resposta seja armazenada em cache, tente 302 ou 307. en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
— um CVn

7
O atalho de teclado para isso é Ctrl+ Shift+ Delete.
— 0xcaff

151

Esta é a maneira mais segura de limpar a memória persistente do Chrome para redirecionamentos sem limpar todos os seus dados de navegação (método usado pela resposta principal atual):

  1. Abra o painel Ferramentas do desenvolvedor ( optioncommandino Mac ou ctrlshiftino Windows)

  2. Clique e segure o ícone recarregar insira a descrição da imagem aqui

  3. Um menu será aberto

    insira a descrição da imagem aqui

  4. Escolha a terceira opção neste menu ("Cache vazio e recarga forçada")

Aqui está uma excelente explicação de como essas três opções diferem .

PS: para evitar ter que executar essas etapas sempre que o redirecionamento for seguido pelo Chrome: marque desativar o cache no DevTools e, enquanto o DevTools estiver aberto, o Chrome ignorará o cache de redirecionamento (de acordo com esta resposta )


1
Como um aparte: isso não está disponível em um Mac.
— Arjan4

5
este cache nem sempre apagar redireciona
— Claudiu Creanga

7
Está disponível no Mac, mas o menu só está disponível se você tiver as ferramentas de desenvolvimento abertas. Presumo que isso possa ser o mesmo no Windows.
— 228 Percy

1
O @Arjan está disponível em um Mac, veja superuser.com/questions/304589/…
— Gaia

4
Mac OS X, Yosemite. Lutando com um redirecionamento permanente de http para https, apenas essa opção funcionou. Todos os outros, incluindo o "Desativar cache (enquanto o DevTools está aberto)", não fizeram diferença.
— Carles Sala

115

Não é uma solução perfeita, mas consegui impedir o Chrome de usar o redirecionamento em cache passando uma string de consulta falsa ou adicionando um parâmetro falso à string de consulta existente. Por exemplo, adicionar um simples ?ao final de um URL que não possui q string de consulta funcionou para mim no Chrome 30 no Max OS X.


10
Sim, isso funciona. example.comtorna-se example.com?. É o mais fácil do grupo
— fregante

2
Este é um truque incrível. Eu suponho que você pode usar este indefinidamente ?abc, ?abc2etc ...
— brentonstrine

2
Isso não funcionou para mim. Mesmo usando uma porta diferente (: 8080), ela foi alterada para https, que parece um bug do Chrome.
— jwadsack

Já estou fazendo a mesma coisa, mas nem sempre funciona, às vezes preciso pressionar ctrl + shift + r (ctrl + f5) para obter a versão mais recente da página da web ou páginas parciais incluídas na página
— M98

Se houver um curinga em cache 301, isso pode não funcionar, pois é "lembrar" de encaminhar tudo após o TLD.
— Dhupin

92

Há um bug do Chromium "wontfix" sobre isso ,

Esse é o comportamento esperado.

Observe que:

  1. Você pode adicionar cabeçalhos de controle de cache a um 301 e nós os seguiremos (expiração etc.)
  2. Se o recurso em questão for um sub-recurso, recarregar a página fará com que o redirecionamento seja re-validado com o servidor.
  3. Você não precisa perder todo o cache. Basta seguir o redirecionamento e excluir a última hora.

O que "exclui a última hora". significa? Como fazer isso?
— Mikaël Mayer

1
@ MikaëlMayer Ao clicar em "Histórico> Limpar dados de navegação", você pode selecionar um período para remover os dados ("a última hora", "a semana passada" etc)
— dbr

Não..! Limpar os dados de navegação de um site não removerá o comportamento de redirecionamento 301. Não no Chromium 64.0.x qualquer maneira
— patricktokeeffe

Limpar "1 hora" faz com que você saia de todos os produtos e contas do Google. Que conselho bom ...
— Luciano Fantuzzi

> Você não precisa perder todo o cache. Basta seguir o redirecionamento e excluir a última hora. Isso é ainda pior do que "excluir o último redirecionamento", que é o recurso que eles não corrigiram.
— rox0r

66

Se você tiver a opção "Desativar cache (enquanto o DevTools estiver aberto)" ativada no DevTools, basta ter o DevTools aberto o suficiente para ignorar o cache de redirecionamento, sem desperdiçar constantemente sua sessão.


9
Atenção: se DevTools está aberto, há uma maneira rápida de eliminar cache: clique no botão de atualização com o botão direito e escolha completa de recarga;)
— user65130

5
isso não funciona o tempo todo. Eu apaguei todo o meu cache e ainda o redirecionei. Somente com o modo incógnito ele funciona e você terá um comportamento consistente
— Claudiu Creanga

2
Por que essa não é a melhor solução? os outros são terríveis em comparação!
— Brian

4
Não funciona mais ... Provavelmente funcionou em 2014
— Lord Loh.

@LordLoh. Eu apenas tentei isso na versão mais recente do Chrome e funcionou exatamente como o esperado. Com os devtools fechados, o redirecionamento é armazenado em cache. Recarregar a página com as ferramentas abertas não redireciona.
— Mike Gossmann 01/09/16

20

O Chrome armazena em cache os redirecionamentos HTTP e para de verificar com o site se o redirecionamento foi alterado. Isso pode ser frustrante, pois a maneira mais fácil de corrigir (visitar o site e forçar uma atualização forçada) não pode ser usada porque o redirecionamento ocorrerá antes de você acessar o link. Este não é um problema corrigido .

Para contornar isso, limpe os dados de navegação, conforme explicado aqui, ou siga as etapas abaixo e evite perder seu histórico.

  1. Abra as Ferramentas do desenvolvedor do Chrome dev-tools

  2. Clique em Configurações configurações

  3. Marque Desativar cache (enquanto o DevTools está aberto) desabilitar

  4. Visite o site que você queria e o problema do cache será resolvido.


2
Você encontrará a opção "desativar cache" na guia de rede também, é a mesma opção. Para redirecionamentos de depuração, sugiro usar o "preservar log" também.
— Trendfischer

15

Vá para chrome: // net-internals e, na extremidade direita, abra o menu suspenso e escolha "Limpar cache". Na versão 48, essa era a única coisa que funcionava para limpar um 301 em cache (redirecionamento permanente).

Atualização: infelizmente, a partir da versão 71 (dezembro de 2018), o Google removeu o recurso net-internals.


1
Funciona no Chrome 56
— spencer.sm 09/02

Ainda funciona no Chrome 67
— SCO

Não funciona no Chrome 71. O visualizador de eventos net-internals e a funcionalidade relacionada foram removidos.
— userlond

8

Os domínios .dev são forçados a usar HTTPS no Chrome 63 ou superior

Desde o Chrome 63, em dezembro de 2017, todos os domínios que terminam em .dev (e .foo) são forçados a usar HTTPS por meio de um cabeçalho HTTP Strict Transport Security (HSTS) pré-carregado.

Mais informações aqui: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/


Este foi o meu culpado, com certeza! Passo HOURS tentando descobrir o que diabos estava acontecendo. Obrigado por postar isso!
— Jabari

Esta resposta precisa de mais votos. Pode não ser o problema que o questionador teve, mas será para muitos desenvolvedores que encontrarão essa resposta nos resultados da pesquisa.
— bp.

Deus! Quem poderia ter uma idéia tão brilhante!
— Pavel Niedoba

7

Para limpar o cache de redirecionamento de uma única página no Chrome, visualize o código - fonte e faça uma atualização definitiva (CTRL + SHIFT + R).

Isso funciona porque o navegador de origem não segue automaticamente os redirecionamentos 301.


4
Não funcionou para mim no Chrome 25
— swrobel 20/03

3
Isso não funciona se o redirecionamento for para todas as páginas. Eu tenho um www. -> não www. redirecionar - para que o redirecionamento seja no primeiro hit, então não consigo atualizar nada. Cada vez que tento ir para a página para atualizar, segue o 301 - então é tarde demais!
— Ian Grainger

1
@Ian E se você digitar a fonte de exibição da barra de endereço: www.example.com? Isso permite que você atualize sem que seja redirecionado?
— Matthew Blackford

1
@MatthewBlackford AFAICT a mesma coisa, na verdade eu recebo a fonte da página redirecionada. Não tenho certeza se meu teste foi ótimo, apesar de TBH. Excluí o histórico de navegação para 'corrigir' esse problema.
— Ian Grainger

2
Isso funciona apenas para redirecionamentos javascript e metatag. Redirecionamentos HTTP ainda são seguidas
— fregante

6

Conforme descrito aqui, pode ser causado pelo HSTS

Para contornar isso, fiz o seguinte.

Na barra de endereço do Chrome, digite "chrome: // net-internals / # hsts". Na parte inferior da página, está QUERY domínio caixa de texto - verifique se o site (localhost, por exemplo) é conhecido pelo navegador. domínio usando a caixa de texto acima Seu site agora deve funcionar usando HTTP simples e antigo


1
Ei, obrigado. Isso realmente ajuda com o repentino https redireciona o cache.
— Ruberoid 03/03

5

No Chrome ou Firefox, você pode atualizar o redirecionamento digitando "view-source: redirect.yoursite.com" e pressionando Enter. Em seguida, atualize essa página. Agora, isso deve forçar o Chrome ou o Firefox a atualizar o redirecionamento.


Esta é a única resposta que funcionou para mim.
— precisa saber é o seguinte

4

Se você quiser apenas verificar se os redirecionamentos estão funcionando conforme o esperado, provavelmente é mais fácil usar uma ferramenta de linha de comando como wget ou similar. Você pode inspecionar os cabeçalhos de resposta e os redirecionamentos não são armazenados em cache.


3

Para fins de desenvolvimento, recomendo que você abra as configurações do DevTools no Chrome e marque "Desativar cache". Os redirecionamentos 30x não são armazenados em cache e você pode depurar arquivos .htaccess e assim por diante! insira a descrição da imagem aqui


O estranho é que essa opção não ajuda. Desativei o cache, mas ele ainda diz na guia rede 301 Moved Permanently (from disk cache).
— mgutt

É exatamente o mesmo que clicar em 'desativar cache' enquanto a guia de rede está aberta. Não - não limpa os redirecionamentos.
— bshea

1
  1. Vamos para chrome://settings/search#clear%20browsing%20data

  2. Clique em "Limpar dados de navegação"

  3. Marque "Imagens e arquivos em cache" (e desmarque o restante, se desejar)

  4. Clique em "Limpar dados de navegação"

insira a descrição da imagem aqui


1

método mais simples, atualização completa. segure Ctrl+ Ralguns segundos. Isso limpa os redirecionamentos e os recursos estáticos.


Por que você seguraria em vez de simplesmente pressionar Ctrl+R?
— Gronostaj # 1/15

@gronostaj Não foi a minha resposta clara e simples? . Sem segurar, seria apenas uma atualização normal. O que não limpa recursos em cache ou redireciona.
— Ryu_hayabusa

Segurar é como pressionar várias vezes. Abra o Bloco de notas e mantenha pressionado R, vários Rs aparecerão. É exatamente o mesmo, mas com Ctrl. Manter Ctrl+ Ré o equivalente exato de pressioná-lo dezenas de vezes por segundo por alguns segundos. Isso não é inteligente, está abusando do mecanismo de atualização interno e confiando em comportamento não documentado.
— gronostaj

@gronostaj Sim, é um comportamento não documentado. A resposta aceita não funciona para mim. É por isso que eu compartilhei aqui. Não vejo outra maneira de limpar o redirecionamento em cache. Se você conhece outros métodos, sinta-se à vontade para compartilhar.
— Ryu_hayabusa 10/10

Tentei e não funcionou (redirecionamento 301 em todo o domínio).
— mgutt

1

Se você não deseja perder todo o cache e seu redirecionamento ainda está preso no cache, tente visitar a fonte de exibição: versão do URL. Isso atualizou o cache de redirecionamento do mesmo URL para mim.


0

Eu tentei todas as respostas nesta página, mas nenhuma funcionou até executar o flushdns na janela da linha de comando do Windows.

C:\Users\DBashyal>ipconfig /flushdns

Windows IP Configuration    
Successfully flushed the DNS Resolver Cache.

Para sua informação, eu já havia Disable cacheverificado como mencionado nesta resposta.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.