Como a Weglot gere os redireccionamentos
Neste artigo, ficará a saber mais sobre como a Weglot gere os redireccionamentos no seu sítio Web.
Nota: Neste artigo, utilizaremos o "redireccionamento 301". 301 significa que um redireccionamento é permanente.
1. Redireccionamentos sem Weglot
Em primeiro lugar, podemos ver como funcionam os redireccionamentos sem utilizar o Weglot.
No WordPress, se criar uma página /about-us . De seguida, decida alterar este URL para /about .
Agora, quando fores /about-us tem uma página de erro 404.
⇒ Por padrão, não há redirecionamento 301 no WordPress.
No entanto, pode utilizar os plug-ins "Yoast Premium" ou "Redirection" para criar um redireccionamento 301 a partir de /about-us para /about .
Uma vez feito isso, quando for /about-us será redireccionado para /about .
Vejamos como funciona quando está a utilizar outra ferramenta que não o WordPress (o Shopify é utilizado aqui para o exemplo).
Ao alterar um URL na Shopify, pode escolher (com uma caixa de verificação, ver captura de ecrã) se pretende criar um redireccionamento :

Se selecionar a caixa, vá para /about-us será redireccionado para /about .
2. Estou a utilizar o plugin Weglot para WordPress
Se tiver um redireccionamento: /a ⇒ /b
Depois, continuando /fr/b mostrará a página francesa; no entanto, ir a /fr/a será redireccionado para /b e NÃO /fr/b .
Para que /fr/a redireccione para /fr/b, pode tentar adicionar este filtro (através do plugin Code Snippet):
add_filter( 'wp_redirect', 'wp_redirect_weglot', 0, 2 );
function wp_redirect_weglot( $url, $status ) {
if ( function_exists( 'weglot_get_current_language' ) ) {
$cl = weglot_get_current_language();
$ol = weglot_get_original_language();
$request_url_service = weglot_get_service( 'Request_Url_Service_Weglot' );
$language_service = weglot_get_service( 'Language_Service_Weglot' );
if ( $cl !== $ol && strpos( $url, '/' . $cl . '/' ) === false ) {
$u = $request_url_service
->create_url_object( $url )
->getForLanguage( $language_service->get_language_from_internal( $cl ) );
if ( $u === false || empty( $u ) ) {
return $url;
}
return $u;
}
}
return $url;
}
3. Estou a utilizar outra integração Weglot
Para saber se está a utilizar uma integração JavaScript ou uma integração de subdomínio/subdiretório, pode ir ao seu painel de controlo Weglot > Ir ao seu projeto > página "Configuração" > Verificar a opção "Subdomínios ou Subdirectórios".
Se estiver ativado, significa que está a utilizar uma integração de subdomínio/subdiretório:

Se estiver desligado, significa que está a utilizar uma integração JavaScript.
a. Tenho uma integração JavaScript
Como a tradução é efectuada do lado do browser sem um URL específico, funcionará. Ou seja, se aceder a /a , será redireccionado para /b e depois traduzir-se-á quando estiver em /b .
b. Tenho uma integração de subdomínio/subdiretório
As integrações de subdomínio e subdiretório mantêm os redireccionamentos, o que significa que se tiver um redireccionamento: /a ⇒ /b e depois ir para es.site.com/a , será redireccionado para es.site.com/b .
O mesmo se aplica às subdirectorias.
Se tiver alguma dificuldade com os redireccionamentos nas suas versões traduzidas, pode contactar-nos diretamente em support@weglot.com.