איך עושים הפנית 301 בוורדפרס (בצורה נכונה)

הפנית 301 בוורדפרס

הפניות בוורדפרס? במה מדובר?! אם אי פעם בהיסטוריה של העיסוק שלכם בניתם אתר וורדפרס (ביקרתם בתיק עבודות שלנו?) בוודאי נדרשתם לבצע הפניות 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.

אני מקווה שעזרתי… אם לא אז תלכו לעז**** לטופס התגובות וספרו לי מה חסר לכם ואנסה לעזור. אל תשכחו לפרגן עם לייק, נפגש במדריך הבא.

  • אהבתם? שתפו!