הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   הפנייה עם htaccess (https://hosts.co.il/forums/showthread.php?t=101576)

yoyob 17-12-12 11:24

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

RewriteRule ^([a-zA-Z0-9_-]+)$ page.php?p=$1 [NC,QSA,L]
וזה מעניק לי את של כתובת ידידותית בצורה נחמדה,
שתי הכתובות זמינות:
קוד:

domain.com/page.php?p=blabla
domain.com/blabla

אולם אם בערך שמועבר מופיע סלאש "/" (כאילו מדובר בתיקיה) הדף מוצג רק בכתובת הראשונה
קוד:

domain.com/page.php?p=bla2/blabla = מוצג כראוי
domain.com/bla2/blabla = דף לא נמצא

כיצד אוכל לתקן זאת?
רב תודות למשיבים

Haimz 17-12-12 15:02

בגלל שהביטוי שלך לא מאפשר סלאשים, תנסה:
קוד:

RewriteRule ^([a-zA-Z0-9_-/]+)$ page.php?p=$1 [NC,QSA,L]

Steve-Web 17-12-12 17:32

כמו שחיים אמר , שים לב מה שהוא פרסם , פשוט הוסיף "/" בסוגריים וכך גם זה מתאפשר.

yoyob 01-01-13 09:24

תודה על העזרה,
האמת שהפקודה עובדת רק בצורה הזו:
קוד:

RewriteRule ^([/a-zA-Z0-9_-]+)$ page.php?p=$1 [NC,QSA,L]
הסלאש ממוקם בהתחלה.
אבל יש לי הפניות נוספות וברגע שאני מוסיף את הסלאש הן לא עובדות.
למשל יש את השורה הבאה אשר עובדת כאשר אין סלאש בפקודה שלמעלה:
קוד:

RewriteRule ^response/([0-9]+)/$ response.php?idcall=$1 [NC,QSA,L]
כאשר אני פונה לדף ללא הסלאש למעלה:
קוד:

mydomain.com/response/7/
הדף מוצג כראוי אבל ברגע שהוספתי את הסלאש הדף אינו זמין.
אשמח להכוונה נוספת, המון תודה...

טוב משום מה היה משמעות לסדר מיקום ההפניות בקובץ השורה הבאה:
קוד:

RewriteRule ^([/a-zA-Z0-9_-]+)$ page.php?p=$1 [NC,QSA,L]
צריכה להיות בסוף הקובץ, תודה בכל אופן

nevo 04-01-13 14:21

היי,
אני אישית לא מציע לך לעשות יותר מידי שורות הHTACCESS עקב הרקורסיביות והאיטיות שלו,
הייתי ממליץ לך לעשות דבר כזה:
נניח הפנייה פשוטה:
PHP קוד:

RewriteRule ^(.*)$ page.php?parm=$[NC,QSA,L

עכשיו כל הכתובת מוזנת לך בתוך המשתנה parm.
מכן אני יכול לחלץ את הכתובת
PHP קוד:

$parm $_GET['parm']; 

לפצל אותו
PHP קוד:

$parm explode("/"$parm); 

להגדיר משתנה מערך חדשה
PHP קוד:

$newGet = array(); 

לרוץ על המערך של parm
PHP קוד:

foreach( $parm AS $value){
$newGet[] = $value;


וכעת תוכל להשתמש בכל סלש על
PHP קוד:

echo $newGet[0];
echo 
$newGet[1]; 

בהצלחה :)

nevo 04-01-13 17:00

תיקון
foreach( $parm AS $value){
if( $value != ""){
$newGet[] = $value;
}
}


כל הזמנים הם GMT +2. הזמן כעת הוא 10:57.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ