WPML

Visão geral do problema

Ao usar o plugin Yoast SEO Pro, as regras de redirecionamento RegEx não funcionam da mesma forma em diferentes idiomas. Há um comportamento diferente para o idioma padrão e o idioma secundário.

Por exemplo, se você criar uma regra de redirecionamento como ^/en/faq/(.+)$ para /en/support/$1, ela pode não funcionar como esperado ao tentar acessá-la por http://example.com/en/faq/test/.

Solução alternativa

Este problema foi corrigido. Atualizar para a versão mais recente resolve isso no seu site, portanto, você só precisa desta solução alternativa se ainda não puder atualizar.

Opção 1

Como uma solução alternativa rápida, você pode criar regras diferentes.
Seguindo o exemplo inicial:
  • ^/faq/(.+)$ redireciona para /support/$1
  • ^faq/(.+)$ redireciona para /en/support/$1

Opção 2

Por favor, certifique-se de ter um backup completo do seu site antes de prosseguir.
  • Abra o arquivo …/wp-content/plugins/wp-seo-multilingual/classes/class-wpml-wpseo-redirection.php.
  • Procure a linha 34.
  • Substitua este código:
    foreach ( $redirections as $redirection ) {
        if ( $redirection['origin'] === $url || '/' . $redirection['origin'] === $url ) {
            return true;
        }
    }
  • Por:
    foreach ( $redirections as $redirection ) {
    				if($redirection['format'] == 'regex'){
    					// Ensure $url starts with /, if regex would need to check if string starts with this is needed.
    					if(strpos($url, '/', 0) !== 0){
    						$url = '/' . $url;
    					}
    					// Lets use ~ as a regex delimiter instead of /, as we are matching a URL.
    					preg_match('~' . $redirection['origin'] . '~', $url, $matches); 
    					if(count($matches) > 0){
    						return true;
    					}
    				} else if($redirection['origin'] === $url || '/' . $redirection['origin'] === $url){
    					return true;
    				}
    }

Todos os problemas conhecidos

Ainda está vendo este problema?

Se a atualização não resolver, envie uma dúvida de suporte e nós vamos analisar isso com você.