HTACCESS| בעיה בליצור Friendly URL - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

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


NeoTrix

Recommended Posts

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

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

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)

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

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

קישור לתוכן
שתף באתרים אחרים

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

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

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

קישור לתוכן
שתף באתרים אחרים

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

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

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

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

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

קישור לתוכן
שתף באתרים אחרים

אתה חייב להשתמש באיזשהו "סיפריה וירטואלית" (למשל /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 ב"אותה סיפריה" כי אתה קורא לו מאותה סיפריה.

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

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

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

הייתי מצפה לפחות שכשהוא קולט שהוא נכנס לתיקיה וירטואלית זה מצרף לתצוגה את הדף ה 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

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...