מדריך Apache – שימוש בקובץ htaccess

מבנה מדריך:

  1. הקדמה
  2. תוכן
  3. הגדרות מומלצות

הקדמה:
שרת הHTTP הנפוץ בעולם נקרא Apache/HTTPD.
אני מניח שכולם מכירים את קובץ ההגדרות שלו שנקרא HTTPD.ini שאם אתה מאוחסן על שרת שיתופי(לדוג' חשבון direct admin) אין לך גישה אליו ולא אל קובץ הגדרות הPHP.

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

נניח שיש לכם מבנה תקיות כזה:

קוד:
/.htaccess
      /www/.htaccess
      /www/htdocs/.htaccess
      /www/htdocs/example/.htaccess

כשהשרת HTTP מטפל בבקשה הוא מחפש בתקייה הנוכחית ובכל התקיות שיש לו גישה אליהם שמעליה קובץ htaccess ומפרש אותו וטוען את ההגדרות שבו, אם יש אותה הגדרה עם ערכים שונים בשני קבצים שונים, ההגדרה שיותר "קרובה" במבנה תקיות לקובץ שבוקש תקבע.
ההגדרות שניתן לשנות או להוסיף הן כאלה שבHTTPD.ini נקבע עליהן AllowOverri
מבחינתכם, פשוט תנסו ותראו אם זה עבד.

דגש חשוב זה שאם יש שגיאה בכתיב של הקובץ או אתם מנסים לטעון mod שלא קיים כל בקשה לקובץ בתקייה שהhtaccess בתוכה תחזיר שגיאת HTTP 500.
כדי לבטל את זה אפשר פשוט למחוק את הקובץ/לשנות לו את השם ככה שלא צריך להלחץ, השרת לא מת.

ניתן לכתוב הערות בקובץ htaccess ע"י # בתחילת השורה.

עד עכשיו נגענו בהגדרות של הapache בנוגע להגדרות PHP, לכל הגדרה שבPHP.INI יש "רמה" שניתן לשנות אותה בה.
אפשר לראות איפה אפשר לשנות מה פה:
http://il2.php.net/manual/en/ini.list.php
בעמודה Changeable
המשמעות של כל ערך מפורטת כאן:
http://il2.php.net/manual/en/configu…nges.modes.php

אז איך משנים?
ישנם 2 סוגים של ערכים של הגדרות PHP,
flag שזה בעצם ערך בוליאני true/false שניתן לכתוב אותו או 0/1 או On/Off או true/false

כדי לקבוע אותו בhtaccess נכתוב בקובץ דבר כזה:

קוד:
php_flag magic_quotes_gpc  0

כש magic_quotes_gpc זו שם ההגדרה שבאמת מומלץ לכבות אותה.

string שזו מחרוזת רגילה, אותה נקבע כך:

קוד:
php_value upload_tmp_dir my_dir

(את ההגדרה הזו נשנה אם אנחנו מקבלים שגיאה שהPHP לא מוצא את תקיית הקבצים הזמניים כדי כשאחנו מנסים להעלות קובץ, או מטעמי אבטחה כדי שרק אנו נוכל לגשת אל קבצים שמועלים לאתר שלנו.)

ו integer שזה מספר שלם רגיל. שאותו גם קובעים עם php_value

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

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

קוד:
# My htaccess file

# דוחס קבצי js, css בGZIP
AddOutputFilterByType DEFLATE application/javascript text/css

#I want GZIP! זה יפעיל דחיסת GZIP על כל הקוד PHP שלכם אם זה עושה לכם שגיאות כבו את זה
php_flag zlib.output_compression 1
php_flag zlib.output_compression_level 6

#I Don't want magic quotes!@#-*!!

php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag magic_quotes_sybase Off

#cya register globals

php_flag register_globals 0

#יש שרתים שזה מכובה בהם וכך אפשר להפעיל את זה חזרה
php_flag allow_url_fopen 1


#זה קובע את איזור הזמן לזמן ישראל
php_value date.timezone +2

#שומע error logs של כל הבקשות לתקייה המסויימת הזו 
php_value error_log /mylog.txt

# הגדרות שנוגעות להעלאת קבצים: 

php_value post_max_size 8M

php_value upload_max_filesize 8M

כולם מוזמנים לשתף אותנו במה הם משתמשים בקובץ HTACCESS שלהם.

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