DNS עם תווים כלליים ותת-דומיינים דינמיים

בכל הזמן הפנוי שלי (הא!), עבדתי לעטוף את מפת ציפורים בר ללא הגבלה יישום עם יישום ארגוני שיאפשר לאנשים לעצב את אתר החנויות שלהם. פיתוח תוכנה משלי כשירות מהווה מטרה שלי כבר לא מעט שנים וזו הזדמנות נהדרת.

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

המטרה שלי היא לבנות יישום בשירות עצמי שבו הלקוח יכול להגדיר את תת הדומיין שלו (http://תת-דומיין.myapplicationdomain.com), או אפילו ליישם תת-דומיין משלהם (http://תת-דומיין.domain.com). על מנת שזה יהיה בשירות עצמי, זה דורש יכולת לתכנת את הפתרון - אך הוא ניגש לכמה קבצי תצורה של שרת דומיין שאינם מוגבלים עם רוב חשבונות האירוח! הבעיה היא תמיכה ב- Wildcard DNS, כלומר, להיות מסוגל להפנות כל תת-דומיין לתחום השרת. במילים אחרות, test.domain.com או www.domain.com או any.domain.com מצביעים על אותו מקום. לא משנה מה תכתוב - זה יעבוד.

מחוץ ליישומים, זו למעשה תכונה די נחמדה שאפשרה - אפילו בבלוג שלך. זה יאפשר לכל אחד לכתוב דבר.domain.com ולהביא אותם אל yourdomain.com. תתפלא מכמה קישורים גרועים יש שמצביעים לבלוג או לאתר שלך. זה עלול להחמיץ תנועה אם האדם לא מזהה שזו שגיאה בקישור.

התהליך עובד על ידי שכתוב מחדש של תת-הדומיין למחרוזת שאילתות לפני שהדף מועבר בפועל על ידי שרת האינטרנט ... כך ש- subdomain.domain.com למעשה מתפרש על ידי שרתי אפאצ'י כ- domain.com?what=subdomain באמצעות שימוש בקובץ htaccess:

# חלץ את חלק המשנה של domain.com
RewriteCond% {HTTP_HOST} ^ ([^ \.] +) \. הדומיין שלך \ .com $ [NC]
 
# בדוק שחלק התת-תחום אינו www ו- ftp ודואר
RewriteCond% 1! ^ (Www | ftp | mail) $ [NC]
 
# הפנה מחדש את כל הבקשות לתסריט php המעביר כארגומנט את תת הדומיין
RewriteRule ^. * $ Http://www.yourdomain.com/%1 [R, L]

יש מידע נוסף על הקבצים שאתה צריך לערוך V-nessa.net. שים לב כי ייתכן שהקבצים לא נמצאים במקום שצוין, בהתאם לספק האירוח שלך. ספק האחסון שלי תומך למעשה בהתערבות של אנשים, אך הם מזהירים כי פעולה זו עלולה לבטל את תמיכת הלקוחות. כמו גם "לפרוץ על אחריותך בלבד", הם גם לא הולכים לפנות לעזור לך.

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

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

תגובות 3

  1. 1

    מגניב מאוד. למעשה השתמשתי בשרת השמות של הרשם שלי עם DNS עם תווים כלליים כשהייתי עם SliceHost, והגדירתי את אפאצ'י לשרת תת-דומיינים לא מוגדרים מקבצי הדומיינים הרגילים.

    ממש הסתקרנתי להסתכל על מסגרת ה- CakePHP, אבל הקישור שלך מת 🙂

    ניתן למצוא את CakePHP בכתובת http://cakephp.ORG

  2. 3

מה אתה חושב?

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