יישום שינוי כתובות עם mod_rewrite – פרק ב'

 

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

מטרת העל של המדריך הזה הוא לגרום לגולשים שנכנסים לכתובת הזו:

http://www.mywebsite.co.il/pages/אודות

לקבל מהשרת את הדף הזה:

http://www.mywebsite.co.il/page.php?title=אודות

אם אתם לא בדיוק מבינים מה הכוונה כאן, חזרו למאמר הראשון שלי בו אני מסביר על שינוי כתובות.

מה זה htaccess?

קבצי htaccess הם קבצי הגדרה (קונפיגורציה) מקומיים כלומר – בתוך קובץ htaccess אנחנו מכניסים הגדרות שיפעלו רק על התיקייה בה נמצא קובץ הhtaccess, ברגע שיש קובץ htaccess בתיקייה מסויימת, שרת הApache בברירת מחדל יודע לגשת אליו, לקרוא אותו וליישם את מה שנכתב בתוכו.

יישום בתוך קובץ הhtaccess

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

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

1
2
Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^pages/(.*)$ ./page.php?title=$1

השורה הראשונה מאפשרת כתובות סמליות (כמו מה שאנחנו עושים), בעיקרון בלינוקס זוהי לא שורת חובה אבל במערכות הפעלה אחרות זה הכרחי. השורה השניה מפעילה את הmod_rewrite בApache.

שתי שורות הבאות הן נורא חשובות, בהם אנחנו קובעים את הסדר העדיפויות של השרת – כלומר, אנחנו אומרים לשרת שאם הקבצים שאליהם הגולש מנסה להגיע אליהם דרך הכתובת באמת קיימים שלא יפעיל את הmod_rewrite. השורה השניה מסמלת שאם התיקייה (הדגל "!-d" עבור directories) קיימת אז שיתעלם מהmod_rewrite והשורה השלישית (הדגל "!-f" עבור files) מסמלת אותו דבר כלפי קבצים.

השורות 1-5 הן הקדמה גלובאלית לכל שינוי כתובות שתרצו לעשות.

לאחר ההקדמה הגלובאלית, בשורות הבאות אנחנו נכתוב את החוקים שלפיהם השרת יחליט אם לנתב את הגולש לURL המקורי שהוא הקיש או להביא לגולש מידע מנתיב אחר. השורה השביעית היא החוק היחידי שכתבנו על מנת שהשרת ינתב את הגולש כמו בדוגמה שנתנו בתחילת מאמר זה.

ניתן לחלק את החוק לשני חלקים:

  1. החלק הראשון הוא תנאי של מבנה עם ביטוי רגולרי
    RewriteRule ^pages/(.*)$ ./page.php?title=$1

    "^" מסמן את תחילת תנאי המבנה, הדולר מסמן סיום התנאי, באמצע תוכלו לראות נקודה וכוכבית, נקודה מסמלת תו בודד (כל תו), והכוכבית מסמלת אין סוף חזרות של תווים "בודדים" (יכול להיות גם 0), הסוגרים תוחמים בתוכם את המשתנה $1, במידה ויש עוד סוגריים בהמשך הוא יתחום את המשתנה עם המספר העוקב ($2 וכן הלאה..).
    אם הURL הנכנס מתאים למבנה הרגולרי* שנכתב בחוק, הדף שיוצג לגולש ילקח מהנתיב שבחלק השני של החוק.

  2. החלק השני הוא פשוט הנתיב ממנו ילקח הדף שיוצג ללקוח:
    RewriteRule ^pages/(.*)$ page.php?title=$1

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

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

בדיקה והפעלת mod_rewrite

יש לציין שהmod_rewrite מגיע עם הApache ומופעל איתו כברירת מחדל, במידה והשינוי כתובות לא עובד לכם סביר להניח שאתם פשוט צריכים להפעיל את הmod_rewrite, יש מספר דרכים לבדוק אם mod_rewrite מופעל בשרת שלכם, אחד מהם הוא בעזרת הפונקציה phpinfo, בעזרתה תוכלו לבדוק אם mod_rewrite נמצאת תחת קטגוריית "Loaded Modules" או בעזרת השלבים הבאים:

  1. צרו קובץ טקסט חדש בתיקייה חדשה בשרת שלכם, ותשנו את שם הקובץ ל".htaccess" (בלי להשאיר סיומת של txt.), והעתיקו לשם את הקוד הבא:
    1
    Options +FollowSymLinks

    RewriteEngine On

  2. היכנסו דרך הדפדפן לתיקייה החדשה שפתחתם, אם התיקייה עולה בלי שגיאת 500, Internal Server Error
    , סימן שmod_rewrite מותקן ומופעל בשרת שלכם.

במידה והוצג לכם שגיאת ה500, Internal Server Erro, תוכלו להפעיל את mod_rewrite בשלבים הבאים:

  1. גבו את קובץ httpd.conf (תוכלו למצוא אותו בד"כ בתיקיית conf / config וכד'.. (בFedora תוכלו למצוא אותו ב/etc/httpd/), וערכו אותו.
  2. חפשו את השורה LoadModule rewrite_module modules/mod_rewrite.so, הסירו ממנה את סימן הערה בהתחלה (סימן הסולמית).
  3. חפשו את השורה ClearModuleList ותוודאו שגם היא לא הערה, כנ"ל לגבי AddModule mod_rewrite.c.
  4. שמרו את הקובץ, ועשו ריסטרט לhttpd (לשרת הApache), בFedora הפקודה – /etc/init.d/httpd restart
    תעשה את העבודה.

אצלי הmod_rewrite כבר מופעל כברירת מחדל ובקובץ httpd.conf אין אצלי אף אחד מהשורות הללו, נתקלתי בעוד משתמשי Fedora באינטרנט שלא מצאו את השורות האלה לכן אל דאגה אם אין לכם חלק מהשורות הללו.

זה הכל, כעת אתם יכולים להשתמש ב-mod_rewrite לכל שימוש שעולה על רוחכם, המבקרים יהנו מכתובות נוחות ומנועי החיפוש (בתקווה) יהנו מכתובות מכוונות.

שתפו את הפוסט הזה:
http://www.htm.co.il/wp-content/plugins/sociofluid/images/digg_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/google_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/myspace_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/facebook_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/twitter_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/bookmark_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/email_48.png http://www.htm.co.il/wp-content/plugins/sociofluid/images/print_48.png

עוד באותו נושא:

 

דיון פתוח

מה אתם חושבים? רשמו את תגובתכם.

תגובות
שגיאNo Gravatar 11 באוקטובר

אחלה אתר. אבל יש לי בעיה אחת: אני לא מצליח ליישם את הנ"ל בעברית רק באנגלית. אני עובד עם apache 2 ב- windows xp ואפילו ניסיתי לשמור את קובץ ה-htaccess כ-utf-8 עדיין לא עובד. יש רעיונות?
שגיא

[תגובה]

אורן רוטNo Gravatar 14 באוקטובר

לי זה גם לא עבד בהתחלה, אבל אחרי שיישמתי UTF-8 זה עבד. אתה מוזמן לשלוח לי את הקוד שלך ואני אראה מה הבעיה שלו.

[תגובה]

דודי תמירNo Gravatar 18 באוקטובר

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

דודי תמיר

[תגובה]

אורן רוטNo Gravatar 18 באוקטובר

הוספת המוד לאתרך תגרום לאתרך להתקדם בגוגל ולא להפך.

הבעיה היחידה היא עם העמודים הקיימים שמקודמים בגוגל, אני הייתי מציע ליצור הפנייה תמידית (301) מהעמודים הקיימים לכתובת החדשה עם mod rewrite.

להפנייה 301 קרא עוד בקישור הבא:
http://www.idanbenor.com/%D7%A7%D7%99%D7%93%D7%95%D7%9D-%D7%90%D7%AA%D7%A8%D7%99%D7%9D/%D7%94%D7%A4%D7%A0%D7%99%D7%99%D7%94-301-%D7%94%D7%A4%D7%A0%D7%99%D7%99%D7%AA-301/

[תגובה]

דודי תמירNo Gravatar 18 באוקטובר

תודה על התשובה המהירה!
1. האם לאחר הטמעת מערכת ניהול עם הפניות בצורה הכי מקצועית, אני לא יאבד את דירוג
המיקומים שלי בגוגל? כי לי נאמר שאין אחריות, ולפעמים זה יכול לקחת חודש ואני יחזור
למצב הקודם, ולא בא לי לאבד מיקום: ראה מקום 5 במילה כוכב נולד!
2.מה מומלץ: להשאיר את הכתובות כמו שהם אך לתת הפניות
או להפוך את הכתובות לעברית, או לשנות לסיומת HTML
3. איזו תוכנה עדיפה – גומלה – וורדפרס
4. האם אתה מבצע או נותן שירות להטמעת מערכת ניהול תוכן עם כל המרכיבים כמו: WC3

[תגובה]

אורן רוטNo Gravatar 18 באוקטובר

1. יש סיכון – מה שאמרו לך זה נכון. או שתבצע את השינויים רק על דפים חדשים באתר (אתם הישנים תשאיר כמו שהם) או שתקח את הסיכון.

2. להשאיר את הכתובות כמו שהן ולתת הפניות, לאן?

אין עדיפות לסיומת html או בלי כלום (כל עוד לא PHP), עברית אפשר לשלב בכל מקרה.

3. אני משתמש בוורדפרס, מאוד נח לעבודה וקידום.

4. לא

מקווה שיכלתי לעזור, אם יש לך עוד שאלות פרטיות אתה מוזמן לשלוח לי למייל.

[תגובה]

גיל

הי אורן
יש לי בעיה עם HTACCESS שלא נותן לי לעשות REWRITE לכתובת בעברית , אפשר עזרה קטנה?

[תגובה]

אורן רוט

בוודאי שאפשר – בתור התחלה תנסה לשנות את פורמט המסמך (htaccess) לקידוד של utf-8

[תגובה]

גיל

ניסיתי. דרך NOTEPAD++ ניסיתי גם UTF8 וגם UTF8 בלי BOM .
הREWRITE בלי עברית עובד כלומר זה הבעיה בעברית
זה גם כלל פשוט כלומר
RewriteRule דוגמה destionation.html

ניסיתי גם בדפדפנים שונים (כרום,פפ3,אקספלורר7) ובכולם זה אותו דבר.

יש אולי איזה משהו בהגדרה של השרת שיכול לגרום לבעיה כזאת?

אופירNo Gravatar 10 בנובמבר

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

[תגובה]

איתיNo Gravatar 15 בפברואר

בנוגע לUTF8, חשוב לוודא שאין בתחילת הקובץ את סימן הBOM שמפריע לשרת וגורם לו להציג שגיאה 500. משום מה, גם כשבחרתי אצלי במחשב את הקידוד בלי BOM ב – Notepad++, השרת הוסיף את זה אוטומטית והייתי צריך למחוק אותו ידנית מהקובץ מתוך ה – Direct Admin.

[תגובה]

אסףNo Gravatar 23 בפברואר

שלום

אני בונה לוח מודעות ב PHP.
יש לי אפשרות לבצע חיפוש לפי קטגוריות בדף הבית ולפי החיפוש התוצאות מוצגות באותו הדף.

לצורך קידום אני רוצה ליצור קישורים בתוך האתר לקטגוריות נבחרות אבל אני רוצה שהקישור יהיה לכתובת סטטית לדוגמא:
http://www.mysite.co.il/index/דירות/3_חדרים/ראשון_לציון

לשם כך הוספתי את קוד הבא לhtacces:
RewriteEngine on

RewriteRule ^index/([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$ /index.php?Table=$1&CategoryHidd=$2&SubCategory1Hidd=$3&SubCategory2Hidd=$4 [L]

ובדף הבית (index) הוספתי

if(!empty($_POST)){
if ( !empty($_POST['CategoryHidd']))
$CategoryInput=$_POST['CategoryHidd'];

if ( !empty($_POST['SubCategory1Hidd']))
$SubCategory1Input=$_POST['SubCategory1Hidd'];

if ( !empty($_POST['SubCategory2Hidd']))
$SubCategory2Input=$_POST['SubCategory2Hidd'];
$Inputs=$_POST;
}

if(!empty($_GET)){
if ( !empty($_GET['CategoryHidd']))
$CategoryInput=$_GET['CategoryHidd'];

if ( !empty($_GET['SubCategory1Hidd']))
$SubCategory1Input=$_GET['SubCategory1Hidd'];

if ( !empty($_GET['SubCategory2Hidd']))
$SubCategory2Input=$_GET['SubCategory2Hidd'];
$Inputs=$_GET;
}

בגדול זה עובד אבל הקטגוריות מתקבלות בג'יבריש (יש בעיה בקידוד)
למישהו יש רעיונות מה לעשות???
בברכה
אסף

[תגובה]

אורן רוט

כן!
תוסיף בPHP את הפונקציה urldecode.
היא בעצם לוקחת את הURL ונותנת לו קידוד נכון.

בהצלחה.

[תגובה]

יניב

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

ראיתי את ההמלצה לשים URLEncode, אבל אני לא מבין – אני מתעסק בקובץ .htaccess ולא .php… אז איפה אני מוסיף את זה…
הרי הקוד הוא קבוע…

מקווה שזאת לא שאלה טפשית מדי…
יניב.

[תגובה]

אורן רוט

איפה יוצא לך הקוד המרגיז של האחוזים? בבאר של הURL או בהדפסה כל שהיא?

אתה לא משתמש בURLencode בשום מקום חוץ מקובץ PHP.

יניב

בשורת הכתובת (Address) של הדפדפן. firefox יודע לקודד אותה בעצמו, אבל כמובן שאקפלורר צריך קצת עזרה :)

יניבNo Gravatar 11 במאי

היי,
אחלה מאמר, תודה רבה.
יש לי בעיה עם match בעברית. כשהחלק אליו אני מפנה בעברית אז זה מפנה אליו. אבל כשהחלק הראשון בעברית (החלק אותו אני מחפש בתוך ה-URL) אז זה לא עובד… אולי יש למישהו רעיון :)

[תגובה]

אורן רוט

אתה מוזמן לשלוח לי מייל עם הקוד שלך – ואני אסדר לך אותו שיעבוד בעברית.

ד"א ניסית לשמור בUTF-8?

[תגובה]

יניבNo Gravatar 11 במאי

תודה רבה על התגובה המהירה :)
אז ככה, המטרה שלי היא להפוך כל URI שיש בו את המילה "המשחקים" לאותו הURI שבו המילה מוחלפת ב "משחקים" (בלי "ה").
אז ניסיתי לכתוב את זה ככה:

RewriteRule ^המשחקים$ משחקים [R=301,L]
(נראה לי שזה התהפך קצת בגלל ה-RTL)
לגבי UTF-8, באמת נתקעתי עם זה קצת אבל בסוף מצאתי את PSPAD ששומר ב- UTF-8 Without BOM..

שוב תודה,
יניב.

[תגובה]

אורן רוט

החוק שכתבת לא נכון – מה שכתבת זה בעצם:

כל מה שמתחיל ונגמר ב"המשחקים" יתחלף ב"משחקים".

זה לא נכון כי הרי URL שלם לא מתחיל ב"המשחקים" צריך לתת ביטוי גם לשאר הURL.

כדאי לך ללמוד קצת יותר לעומק ביטואיים רגולרים ואז יהיה לך קל יותר להכין את הקוד.

כדאי ללמוד מכאן – http://php.eitan.ac.il/main.php?id=00171

[תגובה]

יניבNo Gravatar 11 במאי

אוקיי, קראתי… אחלה מדריך, תודה…
הבנתי שבעצם התעלמתי מכל מה שלפני ואחרי, אז הכנסתי אותם למשתנים.

rewriterule ^(.*)/המשחקים/(.*)$ /$1משחקים$2
אני מבצע התאמה לכל סטרינג שיש באמצע את המילה "המשחקים", שומר את מה שלפני ואחרי ומחזיר אותם אחר-כך, עם המילה משחקים באמצע…
הבעיה היא שזה לא כל כך עובד לי… האם החוק כתוב נכון לדעתך?

[תגובה]

יניבNo Gravatar 11 במאי

אה אה! הצלחתי, תודה :)
הייתי בסה"כ צריך להוריד את ה "/" המיותר, וזה עבד…
אם זה עוזר למישהו, זה הפורמט שעבד:

rewriterule ^(.*)המשחקים(.*)$ $1משחקים$2 [R=301,L]

תודה ובהצלחה לכולם…

[תגובה]

אורן רוט

בסופו של דבר זה עובד לכולם :)
תודה על שיתוף הידע.

[תגובה]

אלרוןNo Gravatar 31 במאי

תודה רבה!
עובד לי 10!

[תגובה]

אלרוןNo Gravatar 1 ביוני

אני לא יודע ביטויים רגולריים, אז אולי תוכלו לעזור לי?
אני משתמש כעת ב
RewriteRule ^pages/(.*)$ ./page.php?title=$1

וזה עובד בצורה כזאת:
mydomain.co.il/pages/about-us

אני רוצה שזה יהיה באותה תיקיה, כמו בצורה הזאת:
mydomain.co.il/about-us

כיצד אוכל לעשות זאת?
תודה מראש לכל העונים!

[תגובה]

אלרון

לא חשוב, הצלחתי בצורה כזאת:
RewriteRule (.*)$ ./page.php?title=$1

[תגובה]

אלרון

אוקי, עכשיו נתקלתי בבעיה אחרת:
אני רוצה ששניהם יעבדו:
mydomain.co.il/about-us
mydomain.co.il/pages/about-us

RewriteRule ^(.*)$ ./page.php?p=$1
RewriteRule ^pages/(.*)$ ./page.php?p=$1

אך אם אני משאיר את שניהם, הדבר היחיד שעובד זה:
mydomain.co.il/about-us
ואם אני מוחק את הראשון, זה עובד [וכל חבריו, אם אני אוסיף עוד במקום pages משהו אחר]:
mydomain.co.il/pages/about-us

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

[תגובה]

אורן רוט

זה אמור לעבוד:

RewriteRule ^(pages/)?(.*)$ ./page.php?p=$1

אתה פשוט אומר בפקודה אחת, שאם יש ואם אין את הpages שיחליף.

אלרון

היי אורן,
תודה על התשובה המהירה!
ניסיתי את מה שכתבת וזה עובד לי, אבל התכוונתי למשהו קצת יותר מתוחכם.

אני רוצה ש
mydomain.co.il/about-us
יפנה לעמוד index.php

ו
mydomain.co.il/pages/about-us
יפנה לעמוד pages.php

כלומר במילים – שהם יפנו לעמודים שונים, ולא לאותה אחת.

אלרון

אורן רוטNo Gravatar 3 ביוני

אלרון,
פשוט מאוד:
RewriteRule ^pages/(.*)$ ./page.php?p=$1
RewriteRule ^([^/]*)$ ./index.php?p=$1

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

[תגובה]

אלרון

מלך!!!!
תודה רבה!

[תגובה]

נדבNo Gravatar 27 ביולי

האם ניתן להשתמש במוד גם על לינקים בתוך האתר? כלומר נניח ויש לי רשימה של לינקים להורדת קבצים מהשרת ואני לא רוצה לחשוף את המיקום שלהם, האם אפשר פשוט להציג לינק (href) לשם הקובץ בלבד (בלי path) ולהוסיף לו את הpath בעזרת המוד? אם כן, מה הסינטקס כדי שזה יעבוד באופן דינמי לכל שם של קובץ (בהנחה שהם שמורים באותה תקייה).

[תגובה]

אורן רוטNo Gravatar 27 ביולי

התשובה היא כן.
אתה יכול להעביר את את כל הגישה מקבצים בתיקייה מסיימת לקובץ PHP שינהל הכל.

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

[תגובה]

נדב

תודה על התגובה הזריזה אבל אם רציתי לנסות להשתמש במוד rewrite שהוא עושה רושם יותר פשוט ללימוד. בכל מקרה תודה.

[תגובה]

אורן רוט

מוד rewrite משתמש בREGEX (ביטויים רגולריים) כך זה עובד.

[תגובה]

נדב

לא הבנתי אותך קודם. אני אנסה ואעזר בך אם אתקע. שוב תודה.

טל הופמןNo Gravatar 6 באוגוסט

שלום אורן!
ביצעתי את המדריך והכול עובד פרט ל CSS ולתמונות בדף. כשאני נכנס דרך הכתובת המקורית – אין שום בעיה אך כשאני נכנס עם הכתובת המקוצרת – הבעיה תקפה.
רציתי לדעת, האם ניתנת אפשרות לפתור את הבעיה ע"י הקובץ .htaccess?

[תגובה]

טל הופמן

וברשותך, יש לי עוד שאלה.
כשאני נכנס לדף דרך הכתובת המקוצרת ולוחץ על קישור, זה מוסיף לשורת הכתובת את השם של הדף (לדוגמה: pages/search.php?content=blabla במקום search.php?content=blabla)

[תגובה]

טל הופמן

חשוב לציין: מקור הבעיה הראשונה נמצא בבעיה השנייה – שם הדף מתווסף וככה בעצם שובר את הכתובת הנכונה

[תגובה]

אורן רוט

טל,
שלח לינק ודוגמא לכמה בעיות.
קשה מאוד להבין בלי לראות…

טל הופמןNo Gravatar 6 באוגוסט

קודם כול, תודה על התגובה המהירה!
תמונה: http://www.siz.co.il/my.php?i=trynq3zykgzi.png
הסבר: השם של הדף שהגדרתי ב htaccess מתווסף לשורת הכתובת ושובר קישורים

[תגובה]

אורן רוט

ידידי,
התכוונתי שתתן לינק לא תמונה – קשה מאוד גם ככה לעשות דיבאג ולבדוק מה קורה שם.

תעלה את המערכת לאנשהו ותן לינק ואז נראה למה הCSS לא עובד וכו…

[תגובה]

טל הופמן

[תגובה]

טל הופמן

פתרתי את הבעיה ע"י השמת "/foldername/continue/".
בכול מקרה, תודה על העזרה וסליחה על הטרחה!
שיהיה שבוע טוב

אורן רוטNo Gravatar 8 באוגוסט

אני שמח שהסתדרת :)

[תגובה]

רוניNo Gravatar 29 באוגוסט

אני מנסה לייצר אתר סטטי (HTML) עם כתובות בעברית.
לדוגמא דף "אודות" אשר שם הקובץ שלו הוא: about.html
כתבתי ב-HTACCESS את הקוד הבא:

RewriteEngine on RewriteRule ^%d7%90%d7%95%d7%93%d7%95%d7%aa%d7%99%d7%a0%d7%95$ about.html

זה לא עובד ומייצר שגיאה 404 (דף לא קיים).
אם אני מחליף את %d7%90%d7%95%d7%93%d7%95%d7%aa%d7%99%d7%a0%d7%95 במילה באנגלית (odotenu) זה עובד נהדר.
יש למישהו רעיון למה?

[תגובה]

כתיבת תגובה

אבטחה: שאלת אבטחה

ניסיון