25-07-2009, 01:59
|
|
|
|
חבר מתאריך: 02.10.05
הודעות: 2,355
|
|
מדריך התקנת mod_rewrite בשרת Apache
הייתי צריך שוב פעם להתקין mod_rewrite על השרת במחשב וראיתי שזה דיי קשה למצוא את מה שכתבתי אז בפורום ושלא פתחתי את זה בנושא חדש, אז באיחור אני עושה את זה.
- המדריך נוסה על מחשב עם מערכת ההפעלה Windows XP עם SP2 על שרת Apache גרסה 2.0.49 -
ונוסה שוב על Windows Vista 64bit על שרת Apache 2.2.11
בשביל להתקין את המוד, צריך לפתוח את קובץ ההגדרות של Apache שנמצא ב- conf/httpd.conf
פתח אותו באיזה תוכנה שבא לך, Noteped יספיק.
שלב 1-הוספת תמיכה בקבצי.htaccess
הסיבה העיקרית לכאב ראש שלי בהתקנת mod_rewrite לא הייתה בכלל בהתקנה של המוד, הבעיה היתה שבשביל להפעיל את mod_rewrite (לפחות בצורת עבודה שאני רציתי) היה צורך בשימוש בקבצי .htaccess כמובן שאם יש כבר תמיכה אפשר לוותר על השלב הזה.
קצת הסבר מה זה: קובץ .htaccess (הנקודה לפניו היא לא טעות) מאפשר לך בשרת Apache לתת הגדרות בנוגע לתיקייה מסוימת, במקרה שלנו, אנחנו רוצים להגדיר בעזרת mod_rewrite אז הדרך בה הוא מפנה דף מוסיים לדף אחר.
ולהתקנה עצמה:
חפשו:
וודאו שהשורה היא:
קוד:
AccessFileName .htaccess
מה שעשינו עכשיו זה הגדרנו שהשם של הקבצי .htaccess הוא יהיה באמת .htaccess
תכלס אפשר לתת לזה איזה שם שאתה רוצה, מומלץ .htaccess בגלל שזה סטנדרט
עכשיו נשאר רק להגדיר איפה יהיה מותר להשתמש בקבצי .htaccess ולפי ברירת המחדל, אי-אפשר להשתמש בקבצי .htaccess בתיקיית htdocs, בשביל להגדיר שיהיה מותר, חפשו:
קוד:
<Directory "C:/Program Files/Apache Group/Apache2/htdocs">
כמובן בהנחה שהתיקייה של ה- htdocs נמצאת ב-
קוד:
"C:/Program Files/Apache Group/Apache2/htdocs"
תראו שיש מן בלוק כזה עם כל מיני הגדרות, מה שרלוונטי למדריך הזה זה לחפש את ההגדרה:
ולשנות אותה ל-
הסינטקס בשביל להגדיר לתיקייה מסוימת מותרות לקבצי .htaccess הוא:
קוד:
<Directory "your dir">
AllowOverride All
</Directory>
כמובן שיש לשנות את your dir לתיקייה המסוימת שאתם רוצים להגדיר.
וזהו! יש תמיכה בקבצי .htaccess
שלב 2-התקנת mod_rewriteזה החלק הפשוט של המדריך, פשוט צריך לחפש:
קוד:
#LoadModule rewrite_module modules/mod_rewrite.so
ולהחליף ב-
קוד:
LoadModule rewrite_module modules/mod_rewrite.so
כמו שניתן לראות, השינוי היחיד הוא הורדת הסימן #
וזהו, תעשו restart לשרת וזה צריך לעבוד
עכשיו בשביל להשתמש ב- mod_rewrite צריך ליצור קובץ שהשם שלו יהיה בידיוק
לפתוח אותו עם איזה עורך שבא לך, שוב, noteped יעשה את העבודה, וכעיקרון התוכן צריך להיראות משהו כזה:
קוד:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ...
כאשר אחרי RewriteRule יש את הביטוי הרגולארי שאתה רוצה לשים, אני לא רוצה לשים פה משהו שלא יעבוד, לזה זמין לי עכשיו קובץ שאני יודע באופן וודאי שהוא עובד, אבל בכל מקרה הנה הסבר מקיף על mod_rewrite באתר הרישמי:
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
כעיקרון אם אתה יודע ביטויים רגולארים, לא צריכה להיות לך יותר מידי בעיה להתעסק עם ה-RewriteRule
יש למוד הזה עוד הרבה פיצ'רים, הסיבה שאני לא מפרט עליהם היא שאין לי מספיק ידע בנושא, בכל מקרה, אם הבעיה היא ביטויים רגולאריים, זה מקור טוב ללמידה:
http://php.eitan.ac.il/main.php?id=00172
_____________________________________
|