ABA


"פונקציה לתיקון נתיב יחסי לטובת mod_rewrite"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #14904 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14904
CaTz
חבר מתאריך 2.10.04
14537 הודעות, דרג אמינות חבר זה
   02:15   20.03.09   
אל הפורום  
  פונקציה לתיקון נתיב יחסי לטובת mod_rewrite  
 
   ערכתי לאחרונה בתאריך 20.03.09 בשעה 02:16 בברכה, CaTz
 
היי,

אחרי המלצתכם, הפעלתי mod_rewrite באתר שלי, והתעוררה בעיה.
כל האתר שלי בנוי מעמוד index אחד ששואב לפי נתון קבצים אחרים.

לפני השינויי כל הנתיבים היו יחסיים לroot ואז לא הייתה לי שום בעיה.
אחרי השינוי הכנסתי את כל מה שקשור לניהול תחת התקייה admin
ואז נוצר הצורך למצוא חזרה את הנתיב לroot ולכן כתבתי את הפונקציה הזאת.


function path_to_root()
{
$rel_path = explode('/',dirname($_SERVER['PHP_SELF']));
$uri_path = explode('/',dirname($_SERVER['REQUEST_URI']));

$arr = array_diff($uri_path,$rel_path);

//var_dump($rel_path); echo '<br />';
//var_dump($uri_path); echo '<br />';
//var_dump($arr); echo '<br />';

$deep = count($arr);

for($i=0;$i<$deep;$i++)
{
$path_fix .= '../';
}
return $path_fix;
}

תהנו אנשים,
מקווה שהפונקציה תעזור פה למשהו...

ד"א אתם מוזמנים לראות איך הmod_rewrite עובד
:P
www.sub-baba.com


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  לא כל כך הבנתי מה עשית שם code_blue  20.03.09 08:58 1
     mod_rewrite זה פונקציה של Apach שמאפשרת CaTz 20.03.09 11:55 2

       
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק, 14 נקודות
   08:58   20.03.09   
אל הפורום  
  1. לא כל כך הבנתי מה עשית שם  
בתגובה להודעה מספר 0
 
   תוכל להסביר לי ,
מה זה עושה ה mod rewrite


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
CaTz
חבר מתאריך 2.10.04
14537 הודעות, דרג אמינות חבר זה
   11:55   20.03.09   
אל הפורום  
  2. mod_rewrite זה פונקציה של Apach שמאפשרת  
בתגובה להודעה מספר 1
 
   לעשות redirect פנימי (וגם חיצוני), הכוונה בצד השרת, מבקשה של קובץ שלא קיים לקובץ אחר שיעבד את הנתונים.

אצלי באתר הקובץ היחיד שהיה הוא index.php
אם הייתי צריך לטעון קובץ אחר הקישור היה נראה ככה:
index.php?page=login
מה שעשיתי עם mod_rewrite זה שכל בקשה שתראה ככה:
/login
זה יקשר את זה לקובץ
index.php?page=login
בצד השרת בלבד, כלומר המשתמש לא רואה שום שינוי.

בגלל שכל האתר שלי לפני כן היה קובץ אחד כל הקישורים היו יחסיים אליו (והוא היה נמצא בroot), מכיוון שאת כל הניהול הכנסתי בmod_rewrite מאחורי תקייה כלומר:
היה: index.php?admin=login
הפך להיות: /admin/login

הדפדפן חושב שאני בתוך תקייה שנקראת admin, וכל הקישורים שבתוך קבצים הadmin לא עבדו (כי הם היו יחסיים לroot), אז באמצעות הפונקציה הזאת
אני יכול למצוא את הנתיב ל-root בלי בעיה וכל קישור שיניתי שיכיל קודם את הקריאה לפונק'.

עכשיו אם אני אצור עוד תקייה אז הפונקציה לצמק לי את המרחב מה-root...

מקווה שהבנת.

עוד מידע על mod_rewrite
http://www.google.com/search?q=mod_rewrite&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net