הקדמה
הפניה ב-HTTP היא דרך לציין כתובת אחת או דומיין אחד לכתובת או דומיין אחר. ישנן מספר סוגים שונים של הפניות, כל אחד מהם משמעות שונה לדפדפן הלקוח. שני הסוגים הנפוצים ביותר הם הפניות זמניות והפניות קבועות.
הפניות זמניות (קוד מצב תגובה 302 נמצא) שימושיות כאשר URL צריך להתפרסם זמנית ממיקום שונה. לדוגמה, אם אתה מבצע תחזוקת אתר, ייתכן שתרצה להשתמש בהפניה זמנית מהדומיין שלך אל דף ההסבר כדי ליידע את המבקרים שיחזרו בקרוב.
הפניות קבועות (קוד מצב תגובה 301 הועבר באופן קבוע), ממנה עברתיות מבהירות לדפדפן שהוא צריך לשכוח את הכתובת הישנה לחלוטין ולא לנסות לגשת אליה יותר. אלה שימושיות כאשר התוכן שלך הועבר באופן קבוע למיקום חדש, כגון כאשר אתה משנה את שמות הדומיין.
מדריך זה יכסה הסבר יותר מעמיק על איך ליישם כל סוג של הפנייה ב-Nginx, ויביא דוגמאות למקרים שימושיים ספציפיים.
דרישות מוקדמות
כדי לעקוב אחרי המדריך הזה, תצטרך:
- A server with Nginx installed and set up to serve your website(s). You can find some examples and instructions on the tutorials for Ubuntu 22.04, Debian, or CentOS.
פתרון בסיכום
ב-Nginx, אתה יכול לבצע את רוב ההפניות בעזרת ההכוונה המובנית rewrite
. ההכוונה הזו זמינה כברירת מחדל בהתקנת Nginx חדשה וניתן להשתמש בה כדי ליצור הפניות זמניות ותמידיות כאחד. בצורתה הפשוטה ביותר, היא מקבלת לפחות שני ארגומנטים: ה-URL הישן וה-URL החדש.
אפשר ליישם הפנייה זמנית עם השורות הבאות בתצורת השרת שלך:
ההפניה הזו מכוונת את הדפים לכתובת www.domain2.com
. הפתרון הזה, אולם, עובד רק עבור דף יחיד, ולא עבור כל האתר. כדי להפנות יותר מדף יחיד, ניתן להשתמש בהכוונה rewrite
עם ביטויים רגולריים כדי לציין ספריות שלמות במקום קבצים יחידים בלבד.
redirect
מתאים להתאים לדפוסי ביטויים רגולריים בסוגריים. הוא מתייחס לטקסט התואם ביעד ההפניה באמצעות הביטוי $1
, כאשר 1
הוא הקבוצה הראשונה של הטקסט התואם. בדוגמאות מורכבות יותר, קבוצות התואם הבאות מקבלות מספרים ברצף.
לדוגמה, אם ברצונך להפנות באופן זמני כל דף בתוך www.domain1.com
ל- www.domain2.com
, תוכל להשתמש בתוכן הבא:
כברירת מחדל, ההנחיה של rewrite
מקבעת הפניה זמנית. אם ברצונך ליצור הפניה קבועה, תוכל לעשות זאת על ידי החלפת redirect
ב־permanent
בסופו של ההנחיה, כמו כן:
בואו נמשיך אל דוגמאות ספציפיות.
דוגמה 1 — העברה לדומיין שונה
אם הקמת נוכחות באינטרנט ותרצה לשנות את הדומיין שלך לכתובת חדשה, מומלץ לא פשוט לעזוב את הדומיין הישן שלך. סימניות לאתר שלך וקישורים לאתר שלך שנמצאים בדפים אחרים ברחבי האינטרנט יישברו אם התוכן שלך ייעלם מבלי שיהיו הוראות לדפדפן על כיצד למצוא את המיקום החדש שלו. שינוי דומיינים בלי הפנייה יגרום לאתר שלך לאבד תעבורה מביקורים קודמים וקישורים ישנים.
בדוגמה זו, נקבע הפניה מהדומיין הישן בשם domain1.com
לדומיין החדש בשם domain2.com
. נשתמש כאן בהפניות קבועות משום שהדומיין הישן יימחק, וכל התעבורה צריכה לעבור לדומיין החדש מעתה והלאה.
נניח שכבר הגדרת אתר האינטרנט שלך להיות משורת עם דומיין אחד בשם domain1.com
המוגדר כבר ב־Nginx כך:
נניח גם שכבר אתה משיק את הגרסה העתידית של האתר שלך ב־domain2.com
:
בואו נשנה את קובץ התצורה של בלוק השרת של domain1.com
כדי להוסיף הפניה קבועה אל domain2.com
:
הוספנו את ההפניה האמורה באמצעות הוראת rewrite
. ביטוי הרגולרי ^/(.*)$
מתאים לכל מה שאחרי ה-/
ב-URL. לדוגמה, http://domain1.com/index.html
יופנה מחדש ל-http://domain2.com/index.html
. כדי להשיג את ההפניה הקבועה אנו פשוט מוסיפים permanent
אחרי הוראת ה-rewrite
.
הערה: זכור לבדוק את התצורה שלך באמצעות nginx -t
ולאחר מכן לאתחל את Nginx לאחר שתבצע את השינויים שלך.
דוגמה 2 — יצירת חוויית קיימות בלתי פוספת על אף שינויים בשמות של דפים יחידים
לעיתים קרובות, נדרש לשנות את שמות הדפים היחידים שכבר פורסמו וקיבלו תעבורה באתר שלך. שינוי השם לבדו יגרום לשגיאת 404 לא נמצא עבור מבקרים שמנסים לגשת ל-URL המקורי, אך תוכל למנוע זאת באמצעות הפניה. זה מבטיח שאנשים שסימנו את הדפים הישנים שלך או מצאו אותם דרך קישורים מיושנים במנועי חיפוש עדן יגיעו עדיין לדף הנכון.
נניח שבאתר שלך היו שתי עמודים נפרדים עבור מוצרים ושירותים בשם products.html
ו-services.html
בהתאמה. עכשיו, החלטת להחליף את שני העמודים הללו עם עמוד מציע יחיד בשם offers.html
. נקבע הפנייה פשוטה עבור products.html
ו-services.html
ל-offers.html
.
אנו מניחים שהאתר שלך מוגדר כך:
הגדרת ההפניות היא כל כך פשוטה כמו שימוש בשני פקודות הפניה.
הפקודה rewrite
מקבלת את הכתובת המקורית שיש להפנות וכן את הכתובת היעד של העמוד החדש. מאחר והשינוי כאן אינו זמני, השתמשנו ב-permanent
בפקודה גם כן. ניתן להשתמש בכמה הפניות כאלו כמו שרוצים כדי לוודא שהמבקרים שלך לא יראו שגיאות 404 לא נמצא.
מסקנה
כעת יש לך את הידע להפנות בקשות למיקומים חדשים. וודא שאתה משתמש בסוג ההפניה הנכון, מאחר ששימוש לא תקין בהפניות זמניות עלול לפגוע בדירוג החיפוש שלך.
יש שימושים רבים נוספים של הפניות HTTP, כולל כך לאלץ חיבורים מאובטחים ב-SSL (כלומר שימוש ב-https
במקום http
) ולוודא שכל המבקרים יגיעו רק לכתובת המוקדמת של האתר ב-www.
.
שימוש נכון בהפניות יאפשר לך להשתמש בנוכחות הרשת שלך בצורה מיטבית ובו זמנית לאפשר לך לשנות את מבנה האתר שלך כפי הצורך. אם ברצונך ללמוד עוד על הדרכים שבהן תוכל להפנות את המבקרים שלך, Nginx מציעה תיעוד מצוין בנושא בקטעי ה-מודול ה-rewrite של התיעוד הרשמי וב-פוסט הבלוג הרשמי על יצירת הפניות.