הגדרות אישיות לדפדוף בתיקיות על שרת אפאצ'י על לינוקס (LAMP)

בברירת המחדל של שרת האפאצ'י יש מאפיין כזה שבכל ספריה שבה אין קובץ שניתן להציג כקובץ הראשי של הספריה (להלן: index.php, או index.html וכו'), מוצג תוכן הספריה על דף אינטרנט.

לא אכנס לאפשרות הזו שמובנית גם בלינוקס עצמו (לא מאמינים לי? משתמשי לינוקס מוזמנים לנסות את הכתובת הבאה).

כך ניתן לחטט בשרת (כמעט) בכל הקבצים שנמצאים בספריות המשנה. מתכנתי וורדפרס אפילו מתייחסים לכך בתוך הקוד כשלחלק מהספריות הם הכניסו קובץ index.php שלא מראה כלום (כתובה שם ההערה "שקט שווה זהב").

דוגמא מפורסמת לתוכן ספריה שכזה, כולל אפשרויות הדפדוף של שרת האפאצ'י ניתן למצוא כאן. הסיבה שכשעולים רמה אחת מעלה מהקישור שהבאתי אז רואים את האתר כרגיל, היא שבספריה "/" של האתר יש קובץ בשם index.html.

השינויים שאפשר לעשות עם מחולל הדפים של אפאצ'י (directory listing):

אפשרות אחת היא לשלול ממנו הצגה של קבצים מסוימים. אם רוצים שהקובץ abc.def לא יוצג ברשימה (בכל ספריה שהיא, אם יש את הקובץ הזה הוא לא יוצג ברשימה), או שכל הקבצים בעלי הסיומת php לא יוצגו ברשימה (php.*) אפשר לעשות זאת ע"י הוספת/עריכת השורה בקובץ etc/apache2/mods-available/autoindex.conf/:

IndexIgnore abc.def *.php

שימו לב כמובן שלינוקס רגיש לאותיות גדולות או קטנות (case sensitive) ולכן צריך להקפיד. כמו כן אם רוצים להסתיר את כל הקבצים בכל הספריות אז שם הקובץ שממנו נרצה להתעלם הוא * ולא *.* כמו במערכות מבוססות דוס/חלונות.

אפשרות אחרת היא לגרום לשרת להציג דף קבוע מראש עבור כל תיקיה כלשהי שאין בה קובץ אינדקס. סדר הקבצים להצגה במיקום של הספריה נקבע בקובץ etc/apache2/mods-available/dir.conf/. ניתן לשנות שם את שורת ההגדרה, לדוגמא:

DirectoryIndex index.php index.html /errors/page404.html

אם בספריה מסוימת קיים הקובץ index.php, אז הוא זה שיוצג כשהגולש באתר יבקש לראות את הספריה ללא ציון שם קובץ בתוכה. אם לא אז השרת ינסה לחפש את index.html ואם גם הוא לא קיים בספריה אז השרת יציג את הקובץ errors/page404.html/. שם קובץ שמתחיל עם / מראה על מיקום מדויק בשרת ולא על מיקום יחסי לספריה שממנה ביקשנו אותו. לדוגמא, אם שם השרת הוא example.com אז בכל ספריה שבה אין index.php ואין index.html השרת יציג את הקובץ example.com/errors/page404.html.

עריכה: לא לגמרי קשור לכותרת אבל באותו עניין: אם אתם רוצים לשנות את דפי ברירת המחדל של שגיאות השרת (שהנפוצה היא שגיאה 404 – דף לא קיים) ניתן לעשות זאת בקובץ etc/apache2/apache2.conf/ ע"י הוספת שורה מתאימה: ErrorDocument 404 /errors/page404.html. כמובן יש לדאוג לקיומו של הקובץ page404.html על השרת. בתוך קובץ ההגדרות יש מלא דוגמאות ובאופן כללי אני ממליץ לקרוא את התיעוד שם.

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

שלח מאמר זה באימייל שלח מאמר זה באימייל
הדפס מאמר זה הדפס מאמר זה

אין תגובות ל“הגדרות אישיות לדפדוף בתיקיות על שרת אפאצ'י על לינוקס (LAMP)”

עדיין אין תגובות

השארת תגובה