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

בעת בקשת דף באופן רגיל, השרת מחזיר בחזרה אל המשתמש קוד 200, האומר כי הבקשה הושלמה בהצלחה. בעת ביצוע הפנייה קבועה, מחזיר השרת קוד 301, בתוספת הכתובת המעודכנת של המשאב המבוקש.

הפנייה קבועה נועדה לביצוע הפעולות הבאות:

  • הפניית דומיין ישן אל דומיין חדש. דוגמא: www.domain.com -> www.domain.co.il
  • הפניית חלק מן האתר אל דומיין חדש (לדוגמא – פיצול אתר לאתר נוסף)
  • הפניית ספרייה מן האתר אל ספרייה חדשה
  • הפניית דף מן האתר אל דף חדש

השינויים המוזכרים כאן דורשים גישה לקבצי htaccess. של האתר. במידה והאתר כבר לא קיים, או שבעתיד כבר לא יהיה קיים, יש לבקש מספק השירות כי יבצע את ההפנייה ברמת הסרבר (דרך קובץ httpd.conf).

מדוע חשוב לבצע הפנייה קבועה?

במקרים רבים מעוניינים בעלי אתרים לשנות את מבנה האתר שלהם, או לשנות את שם הדומיין של האתר. שינויים מסוג זה עלולים ליצור מספר בעיות:

  • תוכן כפול – דומיין חדש עלול להיסרק על ידי הרובוטים של מנועי החיפוש, שיגדירו אותו כהעתק של האתר הישן, ויפסלו אותו.
  • קישורים מתים – קישורים שיצרתם בעמל רב לאתר הישן יגיעו להודעת שגיאה.
  • משתמשים חוזרים – משתמשים ששמו את האתר שלכם ב-Favorites שלהם, יגיעו לכתובת הישנה.

בדיקה של HTTP header

לאחר ביצוע הפנייה קבועה יש לוודא כי ההפניה אכן מתפקדת כראוי, וכי מופיע קוד 301 כאשר מגיעים לדומיין הישן או לדף הישן, ולא מופיע קוד אחר (כמו 302 לדוגמא).

כלי לבדיקת HTTP header של אתר או דף:

 HTTP status code checker

הפנייה ברמת הסרבר מול הפנייה ברמת האתר

את ההפניה הקבועה ניתן לבצע ברמת הסרבר (על ידי ספק שירותי האירוח של האתר) או ברמת האתר.

יתרונות וחסרונות שינוי ברמת הסרבר (httpd.conf):

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

יתרונות וחסרונות שינוי ברמת האתר (htaccess):

  • יתרון: גמישות גבוהה יותר – טוב לניסוי וטעיה.
  • יתרון: אפשרות של בעל האתר לשלוט בהפניה ללא התערבות שירות האיחסון.
  • חסרון: דורש את השארת האתר על השרת (או לפחות את הספרייה).

הפניה קבועה דרך השרת

דבר ראשון, השרת צריך לאפשר ביצוע הפניות קבועות. איפשור זה נעשה בקובץ ההגדרות של השרת (httpd.conf), שם יש להגדיר את השורה הבאה:

AllowOverride All

עתה, ניתן לראות מספר דוגמאות לצורת כתיבת הפניות קבועות שונות באמצעות הכנסת פקודות לקובץ htaccess אותו ממקמים בספרייה בה אמור להתבצע השינוי.

המבנה הכללי של הפקודה הוא די פשוט:

Redirect status old new

בתחילת הקובץ תמיד יש להכניס את השורה הבאה:

RewriteEngine On

הנה הדוגמא הראשונה: שימוש בקובץ htaccess לשם הפנייה של ספרייה באתר ישן לדומיין חדש (פיצול ספרייה לאתר חדש):

Redirect 301 /folder http://www.newdomain.com/newfolder

כל הפנייה שתגיע לספרייה folder באתר הישן, תופנה לדומיין newdomain.com, לספרייה newfolder. ההפנייה תהיה לספרייה החדשה, ובתוכה אל שם הדף, כך שאם גם שיניתם את שמות הדפים, עלולות להיווצר בעיות.

הנה דוגמא להפנייה של קובץ בודד לקובץ אחר (במקרה זה – בדומיין אחר):

Redirect 301 /old.htm http://www.new.com/newpage.html

ולסיום, הפנייה מלאה של דומיין לדומיין חדש:

RewriteRule ^(.*)$ http://www.newdomain.co.il/$1

יש חשיבות לסדר הפקודות

סדר הופעת הפקודות חשוב. הדרך הנכונה לכתוב היא כזו:

Redirect 301 /folder http://www.firstdomain.com/
Redirect 301 / http://www.seconddomain.com/

ולא כזו:

Redirect 301 / http://www.seconddomain.com/
Redirect 301 /folder http://www.firstdomain.com/

בדוגמא השנייה המערכת לא תגיע לכלל השני.

הפנייה קבועה ב-IIS

הפנייה קבועה ב-IIS דורשת גישה אל הגדרות השרת עליו נמצא האתר. כדי לבצע את ההפנייה הקבועה ב-IIS יש לבצע את הפעולות הבאות:

  • כנס אל ה-control panel
  • בחר את כלי Administrative Tools
  • לך ל-Internet Services Manager
  • לחץ לחיצה על לחצן העכבר הימני מעל הקובץ או הספריה אותה אתה רוצה לשנות
  • בחר בלשונית Home Directory אם שם
  • בחר את האופציה a redirection to a URL
  • הכנס את כתובת הדף אליו תעבור ההפניה
  • בחר The exact url entered above
  • בחר A permanent redirection for this resource
  • לחץ Apply

במידה ומדובר בהפניית 301 בין אתר שלם אל אתר שלם, אין לבחור את האופציה The exact url entered above, ובחלון הכתובת אליה תבוצע הההפניה יש לרשום:

http://www.newdomain.com$S$Q

הפנייה קבועה בתכנות – ASP

ישנה אפשרות לבצע את ההפניה הקבועה באמצעות פקודה בשפת ASP. הנה דוגמא לקוד הפנייה:

if lcase(request.servervariables("HTTP_HOST")) = "domain.com" then Response.Status="301 Moved Permanently" Response.AddHeader "Location", "http://www.domain.co.il/" end if

קוד זה מבצע בדיקה האם הדומיין ממנו הגיעה הקריאה הוא domain.com, ובמידה והיא כן, אז מבוצעת הפניה קבועה אל domain.co.il. את ההפניה יש לבצע לפי כל כתיבה אל הדף, כלומר לפני תגי ה-html וה-head.

הפנייה קבועה בתכנות – PHP

ישנה אפשרות לבצע את ההפניה הקבועה באמצעות פקודה בשפת PHP. הנה דוגמא לקוד הפנייה:

קוד זה מבצע הפניה קבועה אל domain.co.il. את ההפניה יש לבצע לפי כל כתיבה אל הדף, כלומר לפני תגי ה-html וה-head.