Após a migração do servidor, apenas a página inicial funciona

33

Alterei recentemente a hospedagem do meu site WordPress para VPS.net . Mudei todos os meus arquivos e importei o banco de dados. Tudo parecia estar bem até eu clicar em um link e perceber que todas as minhas páginas estavam retornando um 404, exceto a página inicial.

O URL do site é http://inksquared.com

mikeyrocks
fonte

Respostas:

42

Eu acho que você recebe http: // yoursite, mas http: // yoursite / qualquer coisa

Eu tive um problema semelhante e foi resolvido quando mudei

o httpd.confde

AllowOverride None

para

AllowOverride All

De acordo com o meu entendimento, ele fará .htaccessefeito.

San
fonte
6
Este funcionou para mim. A maioria das pessoas esquece disso.
qasimzee
1
Isso funcionou para mim também, só teve que mudá-lo na seção de apache2.confpara a localização dos meus arquivos do servidor, /var/wwwno meu caso
sponrad
1
Isso foi parte da resposta para mim. Eu adicionei AllowOverride Allà configuração do site, mas também adicionei Options FollowSymLinks. Pude usar permalinks personalizados, que também criaram um arquivo .htaccess raiz apropriado. Depois disso tudo funcionou.
usar o seguinte comando
1
E não se esqueça de reiniciar o apache! "serviço sudo apache2 restart"
gradosevic 11/01
1
Funcionou. Certifique-se de alterar a opção AllowOverride nos locais no arquivo conf.
Najeeb
44

Tente liberar suas regras mod_rewrite:

Painel -> Configurações -> Link permanente

Salvar configurações (não é necessário fazer alterações)

Chip Bennett
fonte
7
Não há necessidade de salvar, na verdade. As regras são liberadas apenas visitando a página e parte da liberação envolve a gravação em .htaccess.
John Bloch.
I aprender algo novo todos os dias ... :)
Chip Bennett
@ john tem certeza de que apenas carrega a página para gravar em .htaccess, se necessário? Fiquei com a impressão de que apenas rewrite_rules no banco de dados são liberados.
Ashfame 13/04
O wp-admin / options-permalinks.php chama flush_rewrite_rules()um invólucro WP_Rewrite::flush_rules()que, se $hardé true(o que é quando é chamado nessa página) e a função save_mod_rewrite_rulesexiste (definida em wp-admin/includes/misc.php, incluída em todas as páginas de administrador), é chamada save_mod_rewrite_rules(). Veja a definição dessa função aqui: core.trac.wordpress.org/browser/trunk/wp-admin/includes/...
John P Bloch
A função que realmente escreve a reescrever as regras para .htaccess é chamado de insert_with_markers(usado em save_mod_rewrite_rules()acima), definidos aqui: core.trac.wordpress.org/browser/trunk/wp-admin/includes/...
John P Bloch
27

Eu havia enfrentado o mesmo problema.

Fiz o seguinte para resolvê-lo em um servidor Ubuntu:

  1. Em /etc/apache2/apache2.conf , edite AllowOverride None para / var / www / para AllowOverride All

  2. Digite o seguinte comando para ativar mod_rewrite para .htaccess

reescrever sudo a2enmod

  1. Reinicie seu servidor apache:

serviço sudo reinício apache2

O problema resolvido !!!

Avinash
fonte
Obrigado, não foi possível corrigir isso com nenhuma das outras sugestões, mas a2enmod rewritefiz o truque.
Martin McCallion
+1 por mencionar o mod de reescrita. Não sabia que isso não estava ativado por padrão.
Native Coder
Definitivamente necessário sudo a2enmod rewritepara obter este trabalho, obrigado!
Huskie69
1
Obrigado! O comando a2enmod rewritefez o truque para mim.
Lucas Basquerotto
Obrigado Avinash! O mesmo com Lucas, a reescrita do a2enmod fez o truque para mim
Jero Dungog 25/11
1

O motivo é mais provável que o .htaccessarquivo não foi copiado. No Mac OS X e em alguns aplicativos FTP, esse arquivo é considerado "oculto" porque inicia com a .. Se você for para a seção Configurações -> Permalinks na sua seção de administrador, poderá gerar novamente esse arquivo, mas provavelmente é melhor encontrar a versão que você tinha anteriormente e usá-la novamente (especialmente se você usar um plug-in de cache).

Gavin Anderegg
fonte
1

No Ubuntu 14.04 - o arquivo 000-default.conf pode ser encontrado aqui/etc/apache2/sites-available

Ou, se você executar vários wp, a configuração do host virtual seria o seu nome de arquivo de configuração. por exemplo, domain.conf

Você precisa substituir AllowOverride NoneparaAllowOverride All

Espero que isso funcione.

Sam
fonte
0

Você tem um servidor web 404 ou um WordPress 404? Se for um servidor web 404, provavelmente você não copiou o arquivo htaccess raiz da instalação antiga ou não possui permissões corretas para executar.

Meu primeiro item de solução de problemas seria verificar e verificar se existe um arquivo htaccess na raiz. E se sim, o que contém.

MathSmath
fonte
Verificado o arquivo .htaccess. Ele contém o mesmo código que apareceu na seção permalink do painel de administração do wordpress. Alterei as permissões para graváveis ​​e não vejo alterações aparentes.
Mikeyrocks
3
@mikeyrocks Hmm ... outra possibilidade é que seu novo servidor não tenha o mod_rewrite ativado. Importante: você está recebendo um servidor 404 (página em branco comum que diz "não encontrado") ou um WordPress 404 (com o estilo do restante do site)?
precisa saber é o seguinte