Se o WPML não permitir que você escolha diretórios de idiomas (por exemplo, http://example.com/es/ para espanhol), é porque ele tentou acessar esse URL e encontrou um erro. Veja o que você pode verificar para garantir que os diretórios de idiomas funcionem.
Veja o que você precisa configurar para que os diretórios de idiomas funcionem:
- Ative a reescrita de URL.
- Permita que o WordPress tenha acesso de leitura e gravação às pastas.
- Certifique-se de que seu site use uma estrutura de link permanente “amigável”.
Como você pode ver, não há necessidade de criar diretórios físicos no servidor. A opção de ter idiomas em diretórios é possível através da reescrita do URL.
Como o WPML determina se pode ativar idiomas em diretórios
O WPML tenta acessar uma chamada de teste que verifica se os idiomas em diretórios funcionarão. Essa chamada de teste é:
yourdomain/LANGUAGE/?____icl_validate_domain=1
Por exemplo, para verificar se o espanhol está ativado para o nosso próprio domínio (wpml.org), iríamos para o seguinte URL no nosso navegador:
http://wpml.org/es/?____icl_validate_domain=1
Ao fazer isso, você verá uma página em branco. Clique com o botão direito na página e selecione Exibir código-fonte da página. Você deve ver o seguinte conteúdo:
<!--http://wpml.org-->
Isso informa ao WPML que o WordPress permite acessar essa estrutura de URL. Se a chamada for bem-sucedida, o WPML permitirá o uso de idiomas por diretórios. Caso contrário, você receberá algum tipo de mensagem que explica (mais ou menos) qual é o problema.
Se o WPML vir uma página de erro, ele desativará esse recurso e exibirá aquela mensagem de erro vermelha, com possíveis explicações sobre o motivo de estar desativado.
Importante: o WPML acessa o URL de validação fazendo uma chamada fopen para ele. Normalmente, é semelhante ao que os navegadores fazem, mas não é a mesma coisa. Certifique-se de que o fopen esteja ativado no seu servidor. Você pode adicionar o seguinte ao seu arquivo de configuração do PHP para ter certeza de que não está bloqueado:
SecFilterEngine Off
Certifique-se de que o WordPress ative a reescrita de URL
Para ativar a reescrita de URL, o WordPress cria um arquivo chamado .htaccess na pasta onde está instalado. O WordPress cria esse arquivo se você estiver usando qualquer coisa diferente dos URLs padrão. Esse arquivo deve conter o seguinte:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressSe não existir, tente criá-lo. Se existir, mas estiver vazio, copie este conteúdo e salve.
O que significa ser capaz de reescrever URLs?
A reescrita de URL é um mecanismo complexo, usado intensivamente pelo WordPress. Para que isso funcione, o servidor web (normalmente, o Apache) precisa ser capaz de reescrever URLs, e o WordPress deve ter permissão para gerenciar a lógica de reescrita.
No Apache, o mod-rewrite faz a reescrita de URL. É um módulo bastante padrão que vem ativado por padrão. Se você estiver usando o Apache e não conseguir ativar os diretórios de idiomas, verifique se o mod-rewrite está ativo para o seu site. Se você não tiver certeza de como fazer isso, envie um e-mail para o seu provedor de hospedagem. Você pode usar isto:
Olá!Um plugin do WordPress que eu quero usar exige que o módulo mod-rewrite esteja ativado. Você poderia verificar para mim e me dizer se o mod-rewrite está ativado para o meu site? http://example.com
Supondo que esteja ativado, o WordPress agora precisa ser capaz de controlar as regras de gravação de URL. Para que isso aconteça, o WordPress deve ser capaz de gravar na pasta na qual está instalado.
Certifique-se de que o WordPress tenha acesso de leitura e gravação às pastas
Novamente, se você estiver usando o Apache, descubra sob qual usuário o Apache é executado e permita a esse usuário o acesso de leitura e gravação à pasta onde o WordPress está instalado. Você pode fazer isso usando o seu programa FTP, via shell ou por e-mail.
Olá novamente,Preciso de outro favor. Instalei o WordPress neste diretório:
YOUR_WP_INSTALL_DIRECTORY
Você pode alterar as permissões de arquivo para todo o diretório (recursivamente), para que o servidor web possa ler e gravar lá? Preciso que o WordPress seja capaz de gravar em alguns dos arquivos.
Agora, verifique novamente.
Certifique-se de que seu site use uma estrutura de link permanente “amigável”
Seu site precisa usar uma estrutura de link permanente “amigável”. Você pode alterar a estrutura de link permanente do seu site nas configurações do seu WordPress.
Solução de problemas
Se você usar uma CDN, como o Cloudflare, ela pode impedir que os idiomas em diretórios funcionem corretamente removendo os comentários HTML. Como resultado, você pode ver um erro falso positivo, que mostra um aviso relacionado a
?____icl_validate_domain=1 sem nenhum problema no front-end.
Precisa de ajuda?
Se isso ainda não funcionar, faça uma pergunta no suporte do WPML.