עבור לתוכן

HTACCESS| בעיה בליצור Friendly URL

Featured Replies

פורסם

שלום חברים, אני בונה אתר ויש לי בעיה.

אני מנסה לעשות דבר כזה, שקישור כזה:

www.domain.co.il/search.php?query=what

בעצם יעבוד ככה בסופו של דבר:

www.domain.co.il/search/what

הצלחתי פחות או יותר, אבל יש בעיה... מה שקורה שהוא כביכול באמת הולך לתיקיה search הזאתי שבכתובת

ואז הוא לא מוצא את קבצי התמונות וה-CSS של האתר, כלומר האתר נדפק.

הצלחתי לעשות משהו שלא דורש כביכול "כניסה לתיקיה" כמו ב search

שזה עובד ככה:

www.domain.co.il/what

וזה עובד סבבה. אבל כשזה נכנס לעוד תיקיה זה נדפק.

זה הקוד שלי:

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^/?([a-zA-Z0-9_]+)$ page.php?name=$1 [L]
RewriteRule ^/?search/([a-zA-Z0-9_]+)$ search.php?query=$1 [L]

הבעיה היא בשורה האחרונה.

תודה לעוזר :)

פורסם

אני חושב שהאפשרות הכי טובה שלך היא לכתוב סקריפט שאליו יופנו כל הבקשות ומשם הוא ינתב אותם (לרוב ע״פ הURI)

פורסם
  • מחבר

אני חושב שהאפשרות הכי טובה שלך היא לכתוב סקריפט שאליו יופנו כל הבקשות ומשם הוא ינתב אותם (לרוב ע״פ הURI)

וכיצד אעשה זאת?

אפשר קצת הסבר מעבר למה שאתה מתכוון?

פורסם

לא משנה... חשבתי שאתה רוצה משהו יותר מסובך, (בעקרון, מימוש של FCP)

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

תנסה ותודיע פה אם זה עובד או לא.

פורסם
  • מחבר

שמתי את כל קבצי ה CSS בתיקיה CSS ואת קבצי ה JS בתיקיה JS בתיקיה הראשית של האתר..

הדבר היחידי שאוכל נראה לי לעשות זה לתת לכל דבר כמו תמונות, קבצי CSS/JS זה לתת את הכתובת המלאה של הדומיין

<link rel='stylesheet' type='text/css' href='[url]http://domain.co.il/css/style4e.css'>[/url]

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

בטוח מוכרח להיות פיתרון לבעיה הזאתי.

פורסם

במקום לכתוב את הדומיין אתה יכול לכתוב את זה פשוט ככה:

/css/style4e.css

פורסם
  • מחבר

במקום לכתוב את הדומיין אתה יכול לכתוב את זה פשוט ככה:

/css/style4e.css

אתה בטוח? כי כשאני רושם זאת כך זה מעלים לי את כל ה CSS מהאתר.

פורסם

אתה חייב להשתמש באיזשהו "סיפריה וירטואלית" (למשל /search/ כמו שעשית בהתחלה) בשביל שזה לא יתנגש לך עם כל שאר האתר.

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

עריכה: אה, הבנתי למה אתה מתכוון.

הפיתרון לזה הוא פשוט להשתמש בכתובות אבסולוטיות ולא יחסיות כשאתה קורא ל-CSS ולתמונות.. :-X

מה הפלא שזה לא עובד לך? אתה בונה (תרתי משמע..) על אתר ללא סיפריות/תת-סיפריות ?

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

פורסם
  • מחבר

אז כן, זה מה שאני מנסה. כביכול להשתמש בספריה וירטואלית... אני מנסה שכשרושמים למשל

www.domain.co.il/search/keyword

keyword - זה כבר המילה שמחפשים

שזה יחפש.

עכשיו זה באמת מחפש, הכל טוב יפה. הבעיה היחידה היא שהדף מאבד את כל העיצוב שלו,

את כל הקישוריות שלו אל ה css, תמונות, JS וכל השאר. למה?

כי בגלל שהוא כעת כביכול נמצא בספריה הוירטואלית search, הוא מחפש את קובץ ה CSS לדוגמא בתיקיה

www.domain.co.il/search/css/css.css

עכשיו הוא מחפש כאן את ה-CSS, והוא לא מוצא.

אולי אני לא מבין איך ה RewriteRule, אבל לא נראה לי הגיוני שהוא עובד כך.

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

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

פורסם

אין קשר ל-RewriteRule, הוא מחפש את ה-CSS וה-JS ב"אותה סיפריה" כי אתה קורא לו מאותה סיפריה.

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

פורסם
  • מחבר

אין קשר ל-RewriteRule, הוא מחפש את ה-CSS וה-JS ב"אותה סיפריה" כי אתה קורא לו מאותה סיפריה.

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

בסדר, הבנתי. תודה :)

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

הייתי מצפה לפחות שכשהוא קולט שהוא נכנס לתיקיה וירטואלית זה מצרף לתצוגה את הדף ה PHP

המקורי במיקום המקורי, וכשתוצאה מכך ה CSS והעיצוב ישמר.

אבל מסתבר שלא... :)

עריכה:

אגב, בנוגע לזה שאמרתם שאפשר לרשום כך:

<link rel='stylesheet' type='text/css' href='/css/style4e.css'>

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

פורסם

חבל שזה עובד ככה, אחרי הכל זה תיקיה וירטואלית,

אין לדפדפן של הגולש הסופי שום דרך לדעת את זה.

אגב, בנוגע לזה שאמרתם שאפשר לרשום כך:

<link rel='stylesheet' type='text/css' href='/css/style4e.css'>

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

נו? זאת המטרה. שם הקובץ יושב, לא? בסיפריה הראשית /css/

ולמה אתה משתמש בגרש במקום במרכאות?

פורסם
  • מחבר

ובכן, אם הדומיין הוא www.domain.com

אז האתר נמצא בתוך תיקיה

www.domain.com/site

ואז בתוך site למשל יש תיקיה בשם CSS. כלומר

www.domain.com/site/css

ואם אני רושם כמו שהצעתם לי, זה מגיע אל:

www.domain.com/css

מקווה שהדוגמא מובנת.

פורסם
  • מחבר

אז שה-href יפנה ל-site/css/style4e.css.

תודה רבה, באמת עבד. :)

אז רגע... הסלאש בהתחלה אומר שהוא הולך לתיקיה הראשית כאילו?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים