הפניות בוורדפרס? במה מדובר?! אם אי פעם בהיסטוריה של העיסוק שלכם בניתם אתר וורדפרס (ביקרתם בתיק עבודות שלנו?) בוודאי נדרשתם לבצע הפניות 301 בוורדפרס כדי שלא לאבד קישורים יקרים ואפילו ספירת פלוסים בגוגל+ או טוויטים (לייקים איבדתם, ככה זה).
אם רציתם לבצע הפניות 301 בוורדפרס בוודאי נתקלתם באינספור גרסאות, שורות קוד עמומות והמון הסברים למה ככה ולא ככה, למה יש שגיאה ולמה דווקא בשרת שלכם זה לא עובד. אז זהו! אני מרים את הכפפה והנה כמה דוגמאות שיעזרו לכם לבצע הפניות 301 בוורדפרס ב.htaccess שלכם בקלות (אני מקווה).
שמרו על מבנה URL דומה:
אם באתר הקודם דף אודות היה נראה כך
http://www.example.com/about-us.html
אז.. כשאתם יוצרים את דף אודות בוורדפרס דאגו שיהיה לו את אותו הURL (בערך), לדוגמה:
http://www.example.com/about-us/
אותו כלל חשוב גם לגבי קטגוריות:
כלומר קטגוריה בשם blog כלומר:
http://www.example.com/blog/post1978.html
כדאי להשאיר עם אותו הURL גם באתר החדש שלכם. כלומר
http://www.example.com/blog/post1978/
יש כמה סוגים של הפניות
בואו נעבור על הסוגים הנפוצים רגע לפני ההדגמה
מספור | תיאור מקרה | קישור לדוגמה |
---|---|---|
סיטואציה א | אתם רוצים להפנות דף מכתובת ישנה לחדשה | לחצו לדוגמה |
סיטואציה ב | עברתם מאתר מסוג HTML לאתר וורדפרס ויש להפנות הכל! | לחצו לדוגמה |
סיטואציה ג | אתם רוצים להפנות את עמודי הHTML הישנים רק בקטגוריה מסוימת | לחצו לדוגמה |
סיטואציה ד | מפנים עמודים לקטגוריה חדשה ונפטרים מסיומת HTML / PHP | לחצו לדוגמה |
סיטואציה ה | אתם סך הכל רוצים להפנות קטגוריה חדשה לישנה?! | לחצו לדוגמה |
סיטואציה א: הפנית דף בודד
הדבר הכי קל ופשוט לעשות הוא להפנות דף בודד מכתובת ישנה לכתובת חדשה. איך עושים את זה? הנה הדגמה
- איפה: בקובץ .htaccess כמובן
- כן אבל איפה בקובץ?: אחרי קוד ברירת המחדל של וורדפרס
http://www.example.com/category/cars.html # הכתובת הישנה http://www.example.com/trucks.html # עוד כתובת ישנה # קוד ההפנייה ל.htaccess RewriteEngine On redirect 301 /category/cars.html http://www.example.com/category/cars/ redirect 301 /trucks.html http://www.example.com/trucks/
סיטואציה ב: הפניה מעמוד עם סיומת HTML לכתובת בלי לכל העמודים!
אחת מהבקשות הנפוצות ביותר היא להפנות את כל העמודים הישנים באתר הקודם שלכם לדפים החדשים בוורדפרס. אם פעלתם נכון ושמרתם על כתובות העמודים כלומר about.html הפך ל/about/ אז זה ממש קל (מזל נכון?!)
- איפה: בקובץ .htaccess כמובן
- כן אבל איפה בקובץ?: משלבים בתוך הקוד של וורדפרס
# קוד ברירת המחדל של וורדפרס ב .htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # הקוד לאחר הוספת השורה הרצויה! <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule (.+).html?$ http://www.example.com/$1/ [R=301,L] # זאת השורה שהוספנו RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
* ניתן להחליף את הסיומת של .html ב .php
סיטואציה ג: עושים הפנית 301 לעמודים בקטגוריה מסוימת?
זה קורה הרבה… עברנו אתר ואנחנו רוצים להפנות את העמודים בקטגוריה ספציפית מהגרסה הישנה שלהם כלומר עם HTML (או PHP) לאותה תיקייה / קטגוריה אבל בלי הסיומת של הHTML. איך עושים את זה? הנה…
- איפה: בקובץ .htaccess כמובן
- כן אבל איפה בקובץ?: משלבים בתוך הקוד של וורדפרס
# קוד ברירת המחדל של וורדפרס ב .htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # הקוד לאחר הוספת השורה הרצויה! <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^(/)?some-category/([^/]*).html?$ /some-category/$2/ [R=301,L] # השורה שהוספנו RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
* ניתן להחליף את הסיומת של .html ב .php
סיטואציה ד: מפנים דפים בקטגוריה ישנה לחדשה
בחלק הבא נפנה את כל העמודים אשר היו באתר שלנו בקטגוריה מסוימת לקטגוריה חדשה ועל הדרך נפטר מסיומת הקובץ, כלומר סיומת HTML או PHP?
- איפה: בקובץ .htaccess כמובן
- כן אבל איפה בקובץ?: משלבים בתוך הקוד של וורדפרס
# קוד ברירת המחדל של וורדפרס ב .htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # הקוד לאחר הוספת השורה הרצויה! <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^(/)?some-category/([^/]*).html?$ /new-category/$2/ [R=301,L] # השורה שהוספנו RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
* ניתן להחליף את הסיומת של .html ב .php
סיטואציה ה: מפנים קטגוריה ישנה לחדשה
הקוד הבא יעזור לכם להפנות קטגוריה ישנה לחדשה. אם עשיתם את זה כנראה שלא חשבתם על הURL כאשר בניתם את האתר החדש או שפשוט החלטתם להחליף?…
- איפה: בקובץ .htaccess כמובן
- כן אבל איפה בקובץ?: משלבים בתוך הקוד של וורדפרס
# קוד ברירת המחדל של וורדפרס ב .htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # הקוד לאחר הוספת השורה הרצויה! <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^(/)?some-category/ /new-category/ [R=301,L] # השורה שהוספנו RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
סיימנו! היה קל נכון?
אז סיימנו עוד מדריך (קצר ולעניין) אשר עסק ביצירת הפניות בוורדפרס. כמעט בכל המקרים אנו משלבים את הקוד שלנו ישירות בקוד של וורדפרס. זה מבטיח לנו תאימות עם אתר הוורדפרס שלנו ומאפשר לנו להמנע מדפי 404.
אני מקווה שעזרתי… אם לא אז תלכו לעז**** לטופס התגובות וספרו לי מה חסר לכם ואנסה לעזור. אל תשכחו לפרגן עם לייק, נפגש במדריך הבא.
רונן 27 באוקטובר 2014
תודה רבה שגיב!
מזל שחיפשתי בסוף בעברית כי השתגעתי ברשת
שום דבר לא עבד לי כמו שצריך עם וורדפרס.
שגיב SEO 27 באוקטובר 2014
יש דברים טובים בעברית 😉
שמח שעזרתי…
מני מלכה 27 באוקטובר 2014
אני כל הזמן מבקר באתר שלך וכל הזמן מוצא דבר שווים.
תודה רבה גם הפעם 😉
שגיב SEO 27 באוקטובר 2014
בכיף מני,
תענוג לשמוע. שיהיה אחלה שבוע.
יאיר בן משה 29 באוקטובר 2014
שלום
אם אני רוצה להפנות את שלם לדומיין חדש
ורוצה שכל ה slugs יהיה זהים
איך?
שגיב SEO 29 באוקטובר 2014
הדומיין עצמו לא משנה. רק הכתובות של העמודים.
ולכן אם אתה לא מחליף את האתר עצמו (קבצי האתר) אלא את הדומיין לבדו זה עניין
טכני שתלוי בסוג מערכת ניהול התוכן.
אני ממש בעד (בהתבסס על השאלה שלך) שתפנה לאיש מקצוע שיעזור לך לעבור לדומיין חדש
ועם העברת האתר עצמו (אם צריך) או התאמת מסד הנתונים של האתר לדומיין החדש.
אתה יודע איזה סוג אתר זה? וורדפרס? גומלה? HTML? משהו אחר?
יאיר בן משה 3 בנובמבר 2014
זה אתר ורדפרס
שגיב SEO 3 בנובמבר 2014
הבנתי אותך,
זה לא באמת קשור להפניית דומיין אלא להחלפת הדומיין הישן בחדש.
יש שיטה מאוד פופולרית 😉
1. הפניית הדומיין בספק הדומיין לכתובת האתר
2. שינוי בתפריט הגדרות > כללי
*** אזהרה ***
כבר קרה לי שתמונות איבדו את החיבור שלהם בגלל שינוי דומיין כזה או דברים
שונים הפסיקו לעבוד – תוספים שכתובים בצורה גרועה וכל מיני סקריפטים שנסמכים על הדומיין
ולכן… תמיד חשוב לעשות גיבוי אתר ומסד נתונים ומלא וגם כדאי שאת השינוי יעשה מישהו
שממש מבין מה הוא עושה מבחינת מסד הנתונים והסקריפטים באתר.
מצטער, למרות שזה על פניו פשוט זה עשוי ליצור סיבוכים.
ימית סגל 4 בדצמבר 2014
הי שגיב!
מצטרפת לתודות ולעובדה המצחיקה שברגע שחיפשתי בעברית זה הסתדר אחרי שעות של אנגלית ):
רציתי לשאול האם אתה יודע איך "מוותרים" על פרמטרים שמתלווים לרידיירקט (אני מעבירה מאתר ישן בasp לאתר וורדפרס)
תודה רבה!
שגיב SEO 4 בדצמבר 2014
תודה ימית 😉
אין לי מושג על איזה פרמטרים את רוצה "לוותר"… לרוב אם מדובר על מסלול דומה לזה
אז מדובר ממילא על עמודים שלא באמת קיימים כלומר לא היה להם URL משלהם והם נוצרו
כתגובה לפעולת גולש – ולכן.. אין להפנות אותם / אין צורך.
או ש… לא הבנתי? ספקי עוד קצת מידע.
ימית סגל 4 בדצמבר 2014
תודה שגיב, הענין הוא כזה: אתר ישן שישב על דפי AP הועבר לוורדפרס ועדין מגיעים כל מיני בקשות לקבצים ישנים, אז נתבקשתי להעביר לדף הבית החדש. ה301 לוקח את הפרמטרים בquery string מהלינק הישן ושותל בלינק החדש, וגם עם זה יכולתי לחיות, אלא שפרמטר מסוים בURL הוא CAT והוורדפרס "משתגע" ממנו ונותן לי 404
נתתי לו פרמטר מסוים לרידיירקט [QSD] אבל כנראה לא נתמך על ידי השרת של הלקוח 🙁
אגב, הפרמטר זה מכאן http://httpd.apache.org/docs/trunk/rewrite/flags.html#flag_qsd
שגיב SEO 4 בדצמבר 2014
את צודקת, וורדפרס או ליתר דיוק htaccess ומרבית השרתים (כל השרתים שאני מכיר) לא תומכים בדגל סולמית
כיוון שהם מחשיבים את הדגל הזה לאזכור פנימי / תג פנימי בתוך העמוד ולא כתובת עמוד נפרדת (וזה בהחלט כך במרבים המקרים).
זאת אומרת שבדף הזה
http://www.sagive.co.il/tutorials/wp/301-redirect-in-wordpress/
אם תוסיפי #example1 בסוף
פשוט תועברי לחלק אחר בדף.
הפתרון היחידי (אבל המתיש) שאני מסוגל לחשוב עליו (אולי לאחרים יהיו פתרונות טובים יותר)
הוא…
כאשר את מועברת ל404, לקלוט את הURL המפנה בעזרת
ולהתייחס אליו בעזרת PHP…. זה אומר לכתוב סקריפט PHP שבודק עבור דפים מסוימים / כתובות מסוימות,
משווה אותן לHTTP_REFERER ואז מפנה (אולי גם javascript) לדף החדש.
זה כמובן קצת מסתבך אבל אם יש הרבה שגיאות 404 לכתובת מסוימת אולי זה שווה (לשיקולך)…
הנה סקריפט לדוגמה שיש להטמיע ישירות בקובץ 404.php
* קיימת בעיה עם HTTP_REFERER והוא לא תמיד נשמר בדפדפן.
* כמו כן זה פתרון שהוא פלסטר ולא פתרון סופי
* נקודה שלישית בשביל הקרמה – אין לי מה להוסיף 😉
מקווה שזה עוזר.
מתי 9 באפריל 2015
אחלה מאמר שגיב – תודה רבה
ניסיתי איזה אלף מאמרים עד שהגעתי לכאן אבל מזל שמצאתי אותך. ידעתי שיש איפשהו פתרון יעיל להפניות.
דינה 15 בדצמבר 2015
היי, יש לי בעיה באתר של וורדפרס, שאני רושמת:site:www.mydomain.co.il ו-site:mydomain.co.il זה מביא לי תוצאות שונות. איך אני מסדרת שזה יסרק בצורה אחידה עם www ובלי?
תודה
שגיב SEO 20 בדצמבר 2015
אין לך ממש בעיה, זאת לא קשור לאתר עצמו אלא לצורה בה גוגל סורק את האתר.
אם את רוצה ליצור "גרסה מועדפת" של כתובת האתר (ככה גוגל מגדירים את זה) תוכלי לעשות זאת בכלי למנהלי אתרים ולא בהגדרה פנימית של האתר.
הנה מידע נוסף:
הגדרת הדומיין המועדף עליך (www או שאינו www)
יעל 22 בדצמבר 2015
הי,
אפשר להבין רק מה בדיוק הקוד שאני אמורה לרשום עם הסיומת של .htaccess
יש לי אתר חדש שבניתי באמצעות וורדפרס. ניסיתי לבצע הפניות עם פלאגין ולא עזר לי.
עברתי על מה שרשמת כאן אבל לא הבנתי מה לרשום בקוד..?
שגיב SEO 22 בדצמבר 2015
שלום יעל,
זאת שאלה קצת הזויה כי אני לא יודע מה את צריכה לעשות עבור האתר החדש שלך (איזה הפניות וכו)…
הרי לפי זה יוחלט מה את צריכה להוסיף לקובץ .htaccess.
אני ממליץ שתפתחי שאלה רשמית כאן "שאלות ותשובות" ותנסי להוסיף כמה שיותר מידע רלוונטי כמו מה את מנסה לעשות, מה הקוד הנוכחי של .htacess (הדביקי בPASTEBIN ואז קישור אל הקוד) ושאר מידע שתוכלי לצרף ואשמח לעזור
דוד 31 בינואר 2016
היי,
אני לא מוצא בתיקיה הראשית שלי קובץ .htpasswd.
איפה הוא אמור להיות ואם אינו נמצא מה השם המלא של הקובץ?
תודה
שגיב SEO 31 בינואר 2016
שם הקובץ הוא htaccess ולא .htpasswd ואני ממליץ שלא תגע אם אתה לא מכיר את הקובץ הזה או אין לך את הידע המתאים כדי להחיל את ההגדרות.