탐색 건너뛰기

Open

Reported for: WPML SEO 2.1.0

Topic Tags: Compatibility

Overview of the issue

When using the Yoast SEO Pro plugin, RegEx redirect rules do not work in the same way across different languages. There is a different behavior for the default language and the second language.

For example, if you create a redirection rule like ^/en/faq/(.+)$ to /en/support/$1, it might not work as expected when trying to access it through http://example.com/en/faq/test/.

Workaround

Option 1

As a quick workaround you can create different rules.
Following the initial example:

  • ^/faq/(.+)$ redirects to /support/$1
  • ^faq/(.+)$ redirects to /en/support/$1

Option 2

 
Please, make sure of having a full backup of your site before proceeding.

  • Open …/wp-content/plugins/wp-seo-multilingual/classes/class-wpml-wpseo-redirection.php file.
  • Look for the line 34.
  • Replace this code:
    foreach ( $redirections as $redirection ) {
        if ( $redirection['origin'] === $url || '/' . $redirection['origin'] === $url ) {
            return true;
        }
    }
    
  • With:
    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;
    				}
    }
    

5 응답 에게 “Yoast SEO - Redirection RegEx Rules Differ Across Languages with WPML”

    • Hello Raffaela,
      I’m not sure that it is the same issue reported here. Have you tried any of the workarounds provided?
      If that’s the case and the problem persists, please open a chat in our assistance channel. We have there all the required tools to help you better.
      Regards

  1. Is it possible to add this code to the official plugin release from your side? It will be problematic to add code fix to every my website after your plugin release.

답장을 남겨주세요

주제를 유지하고 다른 사람을 존중하십시오. 이 게시물과 관련 없는 문제에 대한 도움이 필요한 경우 지원 포럼을 사용하여 채팅을 시작하거나 티켓을 제출하십시오.

다음 태그를 사용할 수 있습니다.
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>