מודול ניהול הפניות עבור 1C-Bitrix
לאחר העברת אתר למבנה כתובות חדש, Google Search Console מציג לעתים קרובות אלפי שגיאות 404. כתובות ישנות כמו /catalog/product-123.html צריכות להפנות אל /catalog/category/product-name/. כתיבת 8,000 הפניות ב-.htaccess אפשרית, אבל Apache מאט את ניתוח הקובץ הזה בכל בקשה, ועריכה ידנית היא כואבת. מודול ניהול ההפניות שלנו פותר זאת על ידי אחסון כללים במסד הנתונים עם ממשק נוח, ייבוא מכל פורמט, ומתן ניתוחים.
עם ניסיון של למעלה מעשור ב-Bitrix ויותר מ-500 פרויקטים שהושלמו, בנינו יותר מ-50 מודולים כאלה עבור לקוחות החל מחנויות מסחר אלקטרוני ועד פורטלים ארגוניים גדולים.
למה מודול עדיף על .htaccess
Apache מאט באופן ניכר כאשר מספר ההנחיות RewriteRule עולה על 500–1000: הקובץ מנותח עבור כל בקשה אלא אם כן מוגדר מטמון. Nginx קורא את התצורה פעם אחת בעת ההפעלה, אבל הפעלה מחדש עבור כל הפניה חדשה בסביבת ייצור אינה מעשית.
אחסון כללים במסד הנתונים ועיבודם עם PHP הוא פשרה: מעט איטי יותר מהפניית Nginx ברמת החומרה (ב-20–30%), אבל הוא מאפשר ניהול כללים בזמן אמת ללא הפעלות מחדש של השירות. בנוסף, מקבלים היסטוריית שינויים, סטטיסטיקות כניסות, ייבוא/ייצוא, והכל בלוח הניהול המוכר של Bitrix.
מטפל עם מטמון רץ פי 10 מהר יותר ממטפל ללא מטמון: בדיקת הפניה עבור כתובת סטטית אורכת פחות מ-1 אלפית השנייה.
מה אנחנו מספקים
| רכיב | תיאור |
|---|---|
| טבלת מסד נתונים | שדות: מקור, יעד, קוד (301/302), דגל regex, עדיפות, מונה כניסות |
| מטפל OnPageStart | בודק כתובות סטטיות באמצעות מערך O(1), ולאחר מכן regex לפי עדיפות |
| מטמון | מטמון מתויג של Bitrix, איפוס אוטומטי בעת שינוי כללים, TTL של שעה כרשת ביטחון |
| ייבוא .htaccess | מנתח regex, מייבא עם אזהרות עבור תנאים מורכבים |
| ייבוא CSV | מאמת כפילויות והפניות מעגליות |
| יומן 404 | טבלה myvendor_redirect_404 עם תדירות כניסות, יצירת הפניות בלחיצה אחת |
| סטטיסטיקות | מיון לפי כניסות, זיהוי כללים שאינם בשימוש (ללא כניסות ב-90 יום) |
| תיעוד | סכימת מסד נתונים, אינטגרציית API, מדריך הפעלה |
ארכיטקטורה
טבלת כללים:
CREATE TABLE myvendor_redirect ( id SERIAL PRIMARY KEY, source VARCHAR(500) NOT NULL, destination VARCHAR(500) NOT NULL, code SMALLINT NOT NULL DEFAULT 301, is_regex BOOLEAN DEFAULT false, priority INT DEFAULT 100, hits INT DEFAULT 0, active BOOLEAN DEFAULT true, created_at TIMESTAMP DEFAULT NOW(), created_by INT ); CREATE UNIQUE INDEX idx_redirect_source ON myvendor_redirect(source) WHERE NOT is_regex; CREATE INDEX idx_redirect_active ON myvendor_redirect(active, priority); מטפל. הכללים נטענים באירוע CREATE TABLE myvendor_redirect ( id SERIAL PRIMARY KEY, source VARCHAR(500) NOT NULL, destination VARCHAR(500) NOT NULL, code SMALLINT NOT NULL DEFAULT 301, is_regex BOOLEAN DEFAULT false, priority INT DEFAULT 100, hits INT DEFAULT 0, active BOOLEAN DEFAULT true, created_at TIMESTAMP DEFAULT NOW(), created_by INT ); CREATE UNIQUE INDEX idx_redirect_source ON myvendor_redirect(source) WHERE NOT is_regex; CREATE INDEX idx_redirect_active ON myvendor_redirect(active, priority); . כללים סטטיים (התאמת כתובת מדויקת) נבדקים תחילה באמצעות isset על מערך אסוציאטיבי — O(1). ביטויים רגולריים מוערכים רק אם לא נמצאה התאמה סטטית, תוך מעבר על כללים הממוינים לפי עדיפות.
AddEventHandler('main', 'OnPageStart', [\MyVendor\Redirect\Handler::class, 'handle']); תיעוד לאירוע OnPageStart זמין ב-dev.1c-bitrix.ru.
מטמון. כל רשימת הכללים נשמרת במטמון עם מטמון מתויג של Bitrix. כאשר כל כלל משתנה, המטמון נפסל. TTL הוא שעה אחת כהגנה מפני החמצת איפוס מטמון.
ייבוא מ-.htaccess ו-CSV
לאחר העברה, ללקוחות יש בדרך כלל או priority ישן או קובץ Excel עם כתובות ישנות וחדשות. המודול כולל מנתחים לשני הפורמטים.
מנתח AddEventHandler('main', 'OnPageStart', [\MyVendor\Redirect\Handler::class, 'handle']); :
// Пример строки: RewriteRule ^old/(.*)$ /new/$1 [R=301,L] preg_match('/^RewriteRule\s+\^([^\$]+)\$?\s+(\S+)\s+\[([^\]]+)\]/', $line, $m); המודול מחלץ מקור, יעד, קוד הפניה ודגל regex. כללים עם תנאים מורכבים (.htaccess) מיובאים עם אזהרה — הם דורשים בדיקה ידנית.
ייבוא CSV:
- הכינו קובץ CSV עם עמודות
// Пример строки: RewriteRule ^old/(.*)$ /new/$1 [R=301,L] preg_match('/^RewriteRule\s+\^([^\$]+)\$?\s+(\S+)\s+\[([^\]]+)\]/', $line, $m);. - העלו את הקובץ במקטע הייבוא של המודול.
- המודול בודק כפילויות והפניות מעגליות.
- לאחר אימות מוצלח, הכללים מתווספים למסד הנתונים.
- ודאו שההפניות פועלות באמצעות יומן 404.
לפני הייבוא, האימות כולל: מקורות כפולים, בדיקת הפניות מעגליות (A → B → A), ובדיקה אופציונלית של נגישות היעד באמצעות בקשת HEAD.
איך אנחנו מזהים שגיאות 404
המודול רושם תגובות 404 לטבלה RewriteCond. בממשק הניהול, מוצגת רשימה של כתובות ה-404 הנפוצות ביותר עם מוני כניסות וכפתור "צור הפניה" עבור כל אחת. זהו הכלי העיקרי להעברה: אתם רואים את הכתובות הלא קיימות המבוקשות ביותר ויוצרים הפניות בלחיצה אחת.
סטטיסטיקות וניתוחים
כל כניסה להפניה מגדילה את המונה old_url;new_url;code. בממשק, ניתן למיין כללים לפי כניסות כדי לזהות הפניות פופולריות, ולהפך, למצוא כללים "מתים" (ללא כניסות ב-90 יום) שהם מועמדים להסרה.
מקרה אמיתי
עבור אתר מסחר אלקטרוני גדול עם 12,000 מוצרים, העברה מ-myvendor_redirect_404 אל hits יצרה יותר מ-3,000 שגיאות 404. המודול שלנו ייבא את מיפוי הכתובות הישן מקובץ CSV, אימת מעגליות, ויישם הפניות עם מטמון. מספר שגיאות ה-404 ירד לאפס תוך שבוע, ותנועת החיפוש האורגנית התאוששה לחלוטין תוך 14 יום.
תהליך ולוחות זמנים
תהליך העבודה האופייני שלנו:
- איסוף נתונים — איסוף מיפויי כתובות קיימים, יומנים וקבצי .htaccess.
- ביקורת וניתוח — זיהוי שגיאות ה-404 הנפוצות ביותר, הערכת השפעה.
- עיצוב — הגדרת מבנה הכללים, אסטרטגיית מטמון ופורמט ייבוא.
- הערכה — מתן הצעת מחיר קבועה לאחר הניתוח.
- פיתוח — בניית המודול עם כל התכונות הנדרשות.
- בדיקות — בדיקות יחידה, אימות ייבוא ומדדי ביצועים.
- השקה — פריסה וניטור הפחתת 404.
| היקף | תכונות | לוח זמנים |
|---|---|---|
| בסיסי | טבלת כללים + מטפל + ממשק | 1.5–2 שבועות |
| בינוני | + regex + ייבוא מ-.htaccess/CSV + יומן 404 | 3–4 שבועות |
| מתקדם | + אימות מעגליות + סטטיסטיקות + אינטגרציית CDN | 5–6 שבועות |
כדי לקבל הערכה מדויקת לפרויקט שלכם, צרו קשר — נכין הצעה המבוססת על הצרכים הספציפיים שלכם.
טעויות נפוצות שיש להימנע מהן
- אי ניקוי המטמון לאחר ייבוא — תמיד יש לרוקן את המטמון המתויג כדי שהכללים החדשים יהיו פעילים מיד.
- התעלמות מקו נטוי בסוף כתובת — שימוש לא עקבי בקו נטוי גורם להחמצות; אנו ממליצים לנרמל את כל הכתובות.
- שימוש ב-302 לצמיתות — השתמשו ב-301 להעברות קבועות, ב-302 להעברות זמניות, כדי למנוע דילול של ערך הקישורים.
- שכחת בדיקות — תמיד בדקו מדגם של כללים לאחר ייבוא, במיוחד אלה עם regex, כדי לוודא שהם תואמים כמצופה.
פרטי יישום טכניים
- מטפל OnPageStart משתמש ב-
Bitrix\Main\EventManager. - המטמון נמחק באמצעות
Bitrix\Main\Data\Cache::clearCacheByTag. - תומך ב-PHP 8.1+ וב-MySQL 5.7+.
צרו קשר עם המומחים שלנו כדי לדון בפרויקט שלכם — נעזור להגדיר את הייבוא, לוודא תקינות ולהפעיל מטמון. חסלו שגיאות 404 ושמרו על תנועת ה-SEO שלכם.







