מהו קובץ htaccess.? מדוע הוא כל כך חשוב לקידום אתרים? אלו בעיות קידום הוא בא לפתור? איך יוצרים קובץ כזה? איפה
שמים אותו? וגם בונוס: כלי ליצירת הקוד באופן מהיר. בקיצור, כל המידע שאתם צריכים לדעת בנושא מוגש לכם בכפית של כסף. היידה!
מהו קובץ htaccess.?
קובץ htaccess. הוא קובץ היושב בשרת של האתר שלכם, בספרייה הראשית של האתר. הקובץ הזה מורה לשרת לבצע כל מיני פעולות ברמת השרת, כגון הפניית הגולש מכתובת אחת לכתובת אחרת, יצירת כתובות קצרות ונקיות והפניה אוטומטית אליהן, חסימת גולשים מ-IP מסויים, או מדומיין מסויים מלהגיע לאתר שלכם, קביעת דף 404 שלכם, ועוד.
אלו בעיות קידום קובץ htaccess. יכול לפתור ומדוע זה כל כך חשוב לקידום אתרים?
נתקלתם פעם באתר שכשאתם מגיעים לדף הבית שלו אתם רואים שלמעשה הכתובת שהגעתם אליה היא לא רק הדומיין אלא יש לה עוד תוספת כלשהי? הנה ניקח סתם דוגמא היפותטית http://www.megasport.co.il/ – ליחצו בתפריט הראשי על "עמוד הבית". מה קרה לכתובת? ועוד משהו, מה יקרה עם תורידו את ה-WWW מהכתובת? http://megasport.co.il/, גם זה דף בית נוסף. יותר מכך, ,תופעה זו של כתובות כפולות עם WWW ובלי WWW חוזרת בכל דפי האתר.
אז תוכלו להגיד לעצמכם: כן, אבל מה רע בזה? חווית הגולש לא נפגעת מזה כלל.
הבעיה חמורה מאוד מבחינת קידום האתר שלכם!
מדובר כאן בבעיה קריטית. מדוע? שתי סיבות:
- תוכן כפול – למעשה דף עם שתי כתובות שונות – אלו שני דפים שונים! הם פשוט נראים לנו אותו דבר. זה אומר בעיקר תוכן כפול. כל הטקסט מופיע שם פעמיים. לא חבל להזניח את הבעיה הזו?
- פיצול כח הקישורים הנכנסים. כאשר מישהו גולש באתר שלכם רוצה לקשר אליכם, הוא חוזר מיד לדף הבית כדי להעתיק את הכתובת. במקרה של מגה ספורט, הוא לוחץ על "עמוד הבית", מעתיק את הכתובת הכפולה, ומקשר אליה. מה שקורה זה שלא דף הבית קיבל קישור אלא דף אחר באתר. דף שבהירארכיה של האתר נמצא ברמה השנייה. אותו דבר במקרה של אתר שמאפשר גישה לדפים בלי WWW. במידה ויש לכם אתר עם שני דפי בית (או יותר) עשו בדיקת קישורים נכנסים לכל דף: לדף הבית בנפרד, ול"דפי הבית" האחרים. לעיתים קרובות תגלו שקיבלתם קישורים לאותם דפים כפולים ודף הבית פספס קישורים חשובים. הלוואי והייתה דרך לתקן את זה. אז יש דרך.
השימוש העיקרי של קובץ htaccess. בקידום אתרים
השימוש העיקרי שלנו בקובץ הזה הוא לייצר בעזרתו הפניות.
נוכל לבצע הפניות מדפים מסוימים לדפים אחרים ונוכל גם לבצע פקודת הפנייה כללית שכל סוג מסויים של דפים (למשל כאלו בלי WWW) שיפנו לסוג אחר של דפים למשל (עם WWW).
זה בעיקר חשוב כשאנחנו בונים אתר חדש או משנים כתובות URL בדומיין שלנו.
איך יוצרים קובץ htaccess.?
הערה חשובה מס' 1: לפני שאנו יוצרים את הקובץ חשוב לדעת שהקובץ הזה מתאים רק לאתרים המתאחסנים בשרת לינוקס. אם האתר שלכם מתארח בשרת מיקרוסופט, וזה אומר שהוא כתוב בשפת .net או asp.net (בדרך תראו סיום של כתובות באתר עם asp או aspx), אז הקובץ htaccess. לא יעבוד. לכך יש פתרון אחר, אבל על כך בפעם הבאה.
הערה חשובה מס' 2: על מנת שהקובץ יעבוד, יש לוודא שבשרת (לינוקס, כן?) האופציה Apache Mod-Rewrite תהיה פעילה.
הערה חשובה מס' 3: הקובץ הזה הוא למעשה ללא שם. הסיומת שלו היא "htaccess.", כלומר, הנקודה הזו שאתם רואים לפני המילה היא לא טעות. הקובץ הזה הוא ייחודי מהבחינה הזו וזאת משום שיקולי אבטחה. המידע על הקובץ הזה יכול להזיק מאוד לאתר שלכם במידה והאקרים ישחקו איתו. נסו לדמיין שפתאום אתם קולטים שבמקום להגיע לאתר שלכם אתם אוטומטית מופנים לאתר פורנו. לא נעים.
לכן את הקובץ הזה חייבים ליצור ב-notepad++ ולא ב-notepad הרגיל של ה-windows, שכן דרכו לא ניתן לשמור קובץ ללא שם.
איך מבצעים הפנייה של כל דפי האתר ללא WWW לאלו עם ה-WWW?
העתיקו את הקוד הבא ל-notepad++:
Options +FollowSymlinks
RewriteEngine on
[rewritecond %{http_host} ^domain.com [nc
[rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc
שתי השורות הראשונות פותחות את הקובץ ואין לכפול אותן במקרה ורוצים להוסיף פקודות נוספות.
בשורה השלישית והרביעית במקום domain.com, החליפו כמובן לדומיין של האתר שלכם.
שימרו את הקובץ בשם htaccess. והעלו אותו לאתר, כאמור, לסיפרייה הראשית (root domain).
איך מבצעים הפנייה של דף או מספר דפים לכתובות חדשות?
נניח ויש שתי כתובות אותן אני רוצה להפנות.
הכתובת הראשונה היא של דף בית מיותר – אותה אני רוצה להפנות לדף הבית האמיתי.
הכתובת השנייה היא של אחד הדפים – אותו אני רוצה להעביר לדף חדש באתר.
אז שוב פעם הקובץ נפתח באותן שתי שורות ראשונות ונמשיך משם:
Options +FollowSymlinks
RewriteEngine on
Redirect 301 /folderold/howto.html /foldernew/how2.html
/ Redirect 301 /index.html
ההפניות פותחות בפקודה redirect 301. המשמעות שלה היא שזו הפניה קבועה. להבדיל מהפניה זמנית שנראית redirect 302. הפניה קבועה מעבירה את רוב כח הקישורים, כח הדף, לדף החדש בעוד שההפניה הזמנית לא מעבירה כלל.
בשורה השלישית: לאחר פקודת ההפניה אנו רושמים את הכתובת אותה אנו רוצים להעביר ללא הדומיין, במקרה הנ"ל: index.html/ ואז עושים רווח אחד ורושמים את הכתובת החדשה אליה אנו רוצים להעביר, שוב ללא דומיין.
למעשה כשרוצים להפנות דף מסויים לדף הבית הנקי זו אותה פעולה. בסוף השורה רושמים רק "/".
שלב הבונוס – כלי אוטומטי ליצירת קוד ל-htaccess.
ליחצו על הקישור הבא: http://www.htaccessredirect.net/index.php סמנו את "וי" במקום המתאים והשלימו את הפרטים לצידו, ליחצו למטה generate code, והפלא ופלא. יש לכם קוד. רק העבירו אותו ל-notepad++ ושימרו כמו שכתוב למעלה.
שתי האופציות הראשונות בכלי הזה הם האופציות שדיברנו עליהם כאן. אבל יש שם עוד דברים אותם תוכלו להמשיך לחקור בעצמכם.
היידה!