Sempre que subo um novo servidor Web para algum novo site, enfrento este problema mas nunca lembro de documentar. Vou mudar isto hoje pois vejo que é um problema que muitas pessoas tem, muitas vezes basta seguir alguns artigos que já existem na Web mas em inglês porém para outros casos(como o meu) a solução não está em nenhum lugar.
O cenário é o seguinte, você instalou tudo certinho no seu servidor Web, seja uma VPS na digital ocean ou em qualquer outro provedor. Aparentemente tudo está certo, wordpress se comunicando com o mysql, sua página de administração e site acessando normalmente, uma maravilha. Aí você percebe que todas as páginas internas e posts estão retornando o erro 404.
Antes de continuar aconselho você a consultar a existência do seu arquivo .htaccess que tem que estar na raiz do seu site, se não estiver lá, já temos um erro! Pode não ser somente esta a causa mas é um passo importante para que tudo funcione bem. Se você tem dúvidas de como deve ficar seu arquivo .htaccess não se desespere, no site do wordpress você encontra um modelo basta ver acessando o seguinte link: http://codex.wordpress.org/htaccess
Resolvendo o Problema no Apache
Caso a criação do arquivo acima não tenha resolvido o seu problema, então estamos no mesmo barco, você vai precisar ir um pouquinho mais a fundo para resolver.
Não vou entrar em detalhes de certa forma básicos sobre como você acessa os arquivos no seu server, cada um tem um gosto e criar um passo a passo de como eu faço isso não é o foco deste artigo. Sendo assim, acesse os arquivos do seu servidor e vamos editar o arquivo de configuração do apache, no caso da distribuição CENTOS do linux ele fica em:
/etc/httpd/conf/httpd.conf
É possível que em outras distribuições do linux este arquivo esteja em um lugar diferente, o google está aí para ajudar você.
Neste arquivo vamos alterar apenas uma linha, vou colar o trecho do arquivo na imagem abaixo, e o texto que está grifado você deve alterar para “AllowOverride All”
Após realizar esta alteração basta você reiniciar o seu serviço do apache usando o seguinte comando no CentOs
service httpd restart
Pronto isso já resolve todos os nossos problemas, um abraço!