- סטטוס
- ממתין למפתח
- דווח עבור
- WPML SEO 2.1.0
- תוסף/ערכת עיצוב קשורים
- Yoast SEO
- תגיות נושא
- Compatibility
סקירה כללית של התקלה
בעת שימוש בתוסף Yoast SEO Pro, כללי הפניה מחדש של RegEx אינם פועלים באותו אופן בשפות שונות. קיימת התנהגות שונה עבור שפת ברירת המחדל והשפה המשנית.
לדוגמה, אם תיצור כלל הפניה מחדש כמו ^/en/faq/(.+)$ ל־/en/support/$1, ייתכן שהוא לא יפעל כמצופה בעת ניסיון לגשת אליו דרך http://example.com/en/faq/test/.
פתרון עוקף
אפשרות 1
כפתרון עוקף מהיר באפשרותך ליצור כללים שונים.
בהמשך לדוגמה הראשונית:
- ^/faq/(.+)$ מפנה אל /support/$1
- ^faq/(.+)$ מפנה אל /en/support/$1
אפשרות 2
ודא שיש לך גיבוי מלא של האתר לפני שתמשיך.
- פתח את הקובץ …/wp-content/plugins/wp-seo-multilingual/classes/class-wpml-wpseo-redirection.php.
- חפש את שורה 34.
- החלף את הקוד הזה:
foreach ( $redirections as $redirection ) { if ( $redirection['origin'] === $url || '/' . $redirection['origin'] === $url ) { return true; } } - בקוד הבא:
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; } }