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 /sobre nós . De seguida, decida alterar este URL para /sobre .

Agora, quando fores /sobre nós 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 /sobre nós para /sobre .

Uma vez feito isso, quando for /sobre nós será redireccionado para /sobre .


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 /sobre nós será redireccionado para /sobre .


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.

Isto respondeu à tua pergunta? Obrigado pelo feedback Houve um problema ao enviar os seus comentários. Por favor, tente novamente mais tarde.

Ainda precisa de ajuda? Contactar-nos Contactar-nos