Por que estou recebendo um 301 em um post existente?

4

Isso é bizarro ...

Eu tenho dois posts que, quando tento visualizá-los, eles recebem um 301 e continuam redirecionando para o próximo post da fila. Essas postagens são publicadas. Eu não tenho plugins mexendo com redirecionamentos. Eu tentei desativar outros plugins que poderiam causar esse problema. Eu também verifiquei o guid no banco de dados e está correto. O htaccess tem a estrutura básica wp bem permalink. Por alguns motivos, esses dois links foram marcados como 301 e não vejo onde isso foi feito.

Alguma idéia?

ATUALIZAÇÃO:

Isso está ficando muito estranho ...

Então, tentando solucionar o problema, fiz o seguinte:

1. Faça o download do site para o desenvolvedor local Eu pensei que se o problema é o link todo, então se eu mudar para um link dev, o problema não existirá mais. E isso excluiria o redirecionamento de nível de domínio 301.

Acontece que o problema ainda existe sob um nome de domínio diferente.

2. Desabilitou todos os plugins Eu desativei todos os plugins. O problema persistiu. Apenas no caso, eu apaguei todos os plugins. Sem sorte.

3. Pesquisar por links codificados Eu procurei por links codificados em todo o tema. Eu também procurei por redirecionamentos php ou redirecionamentos js. Nada.

4. Então eu resintalled o núcleo do WP Eu queria ter certeza de que não tinha nada a ver com isso. Nada.

5. Eu deletei todas as revisões

6. Plug-in de campos personalizados do ACF desativado Eu pensei que talvez o redirecionamento está oculto em algum campo personalizado. Então desabilitou o plugin que os exibe. O tema mal é exibido corretamente, mas a página redireciona de qualquer maneira.

Não consigo alternar os temas, porque toda a lógica de exibição desta página é feita no tema e usa muitos tipos e campos de postagem personalizados.

Então, a próxima opção era excluir a página para a qual o redirecionamento estava apontando. Então, por exemplo, eu tenho o Post 1 redirecionando para o Post 2. Eu apaguei o Post 2 (lixado). O redirecionamento ainda me levou para a página do Post 2, mas é claro que agora eu recebi um 404. Já que o Post 2 está no lixo.

Então, decidi excluir a postagem 2 da lixeira, para que ela não estivesse mais no banco de dados. Uma vez eu apaguei o Post 2 ... tada! A postagem 1 não estava mais redirecionando. Isso resolve os problemas, mas claramente não posso excluir a postagem 2 no site ao vivo ...

Ainda não sei o que está acontecendo ...

UPDATE 2:

Então, eu queria ter 100% de certeza de que o problema não está nos arquivos, mas no banco de dados. Então eu deletei praticamente tudo, e só deixei o que é preciso para fazer as páginas nas perguntas carregarem sem erros. Isso significa que eu deletei tudo do functions.php, deletei todos os templates mas os que foram afetados, deletei estilos, imagens ... tudo. Excluiu quase tudo do header.php .. deixando apenas o doctype e a inclusão de estilo (é onde está o nome do tema). E o redirecionamento ainda acontece. Eu até removi o wp_head e não tive sorte. Então agora eu sei que o problema está no banco de dados.

    
por gdaniel 14.12.2015 / 17:54

2 respostas

5

Depois de praticamente destruir o site (cópia), encontrei a resposta, mas não tenho 100% de certeza da causa.

O Wordpress salva o nome de slugs de posts antigos, para que ele possa criar redirecionamentos 301. Adiciona uma entrada à tabela postmeta chamada _wp_old_slug. Eu tinha mais de 110 entradas na minha tabela postmeta com muitos valores diferentes. Havia um monte de posts com o valor errado. Não sei como isso aconteceu, mas isso estava causando os redirecionamentos 301. Assim que eu removi essas entradas do banco de dados, o problema foi corrigido.

Talvez a funcionalidade _wp_old_slug tenha quebrado durante uma das atualizações? E foi consertado depois sem que ninguém percebesse? Não tenho certeza, mas eu nem tinha ouvido falar disso antes. Recebi pistas para a minha solução graças a este site .

    
por gdaniel 14.12.2015 / 23:09
0

Normalmente, quando ocorre um redirecionamento 301, o seguinte pode estar acontecendo: -

  1. Você tem algumas regras de reescrita .htaccess desonestos. Neste caso você pode quer ir para o WordPress admin - > Configurações - > Permalinks e depois clique em "Salvar alterações". Isso irá reescrever a parte do WordPress o arquivo .htaccess
  2. Você tem um redirecionamento configurado no nível do domínio (isso exigirá fazendo login no painel de controle do seu host para ver se alguma coisa está configurada lá).
  3. Você tem um script de redirecionamento do lado do cliente.
  4. Há uma configuração do Yoast SEO na seção "Avançado" que diz "Redirecionar URLs feias para limpar permalinks". enlace Isso também causou problemas de redirecionamento para clientes que já trabalhei com.

Qual é o URL em que o problema ocorre? Acho que isso nos ajudará a diagnosticar.

    
por Paul McCarthy 14.12.2015 / 18:51

Tags