Заместващи DNS и динамични поддомейни

През цялото си свободно време (ха!) Работих за опаковане на Неограничена карта на дивите птици приложение с корпоративно приложение, което ще позволи на хората да проектират свой собствен локатор на магазини. Разработването на собствен софтуер като решение за услуга е моя цел от доста години и това е чудесна възможност.

Има две ключови характеристики от рафта, които исках да вложа в приложението, които се оказват огромно предизвикателство, затова исках да ги обсъдя в случай, че някога искате да направите същото. И двете функции са нещо обичайно за всички приложения, но аз разбрах, че въпреки че са нещо обичайно, много хостинг доставчици всъщност не ги поддържат!

Целта ми е да създам приложение за самообслужване, където клиентът може да конфигурира свой собствен поддомейн (http://поддомейн.myapplicationdomain.com), или дори да приложат свой собствен поддомейн (http://поддомейн.yourdomain.com). За да може да се самообслужва, е необходима възможност за програмиране на решението - но има достъп до някои конфигурационни файлове на сървъри за имена на домейни, които са извън границите на повечето хостинг акаунти! Проблемът е в поддръжката на Wildcard DNS, т.е. да може да насочва всеки поддомейн към домейна на сървъра. С други думи, test.domain.com или www.domain.com или any.domain.com всички сочат към едно и също място. Без значение какво пишете - ще се получи.

Извън приложенията, това всъщност е доста хубава функция, която сте активирали - дори във вашия блог. Това би позволило на всеки да пише нещо.yourdomain.com и ги доведете до yourdomain.com. Ще се изненадате колко лоши връзки има, които сочат към вашия блог или уеб сайт. Това може да бъде пропуснат трафик, ако човекът не разпознае, че това е грешка в връзката.

Процесът работи чрез пренаписване на поддомейна в низ за заявки, преди страницата действително да бъде изобразена от уеб сървъра ... така че subdomain.domain.com всъщност се интерпретира от сървърите на Apache като domain.com?what=subdomain чрез използване на htaccess файл:

# Извличане на поддомейн частта на domain.com
RewriteCond% {HTTP_HOST} ^ ([^ \.] +) \. Yourdomain \ .com $ [NC]
 
# Проверете дали поддомейнната част не е www и ftp и поща
RewriteCond% 1! ^ (Www | ftp | поща) $ [NC]
 
# Пренасочете всички заявки към php скрипт, предаващ като аргумент на поддомейна
RewriteRule ^. * $ Http://www.yourdomain.com/%1 [R, L]

Има допълнителна информация за файловете, в които трябва да редактирате V-nessa.net. Имайте предвид, че файловете може да не се намират там, където е посочено, в зависимост от вашия хостинг доставчик. Моят хостинг доставчик всъщност много подкрепя хората, които се намесват, но те предупреждават, че това може да анулира поддръжката на клиенти. Освен „хакване на свой собствен риск“, те няма да се обърнат и за да ви помогнат.

Ще работя върху разработването на останалата част от приложението, вместо да се закачам за разработването на поддомейн. Всъщност ще дам CakePHP изстрел, който да се използва като рамка за него!

Последна бележка, малко съм хакнал тези неща. Благословен съм с екипи за разработка в работата си, за да разбера тези неща. Сам по себе си съм малко опасен. Всяка обратна връзка и помощ се оценяват!

3 Коментари

  1. 1

    Много яко. Всъщност използвах сървъра за имена на моя регистратор с заместващ DNS, когато бях с SliceHost и бях конфигуриран Apache да обслужва неконфигурирани поддомейни от файловете на обикновените домейни.

    Наистина ме заинтригува да погледна рамката на CakePHP, но връзката ви е мъртва 🙂

    CakePHP можете да намерите на адрес http://cakephp.ORG

    • 2

      Мислех да отида и по маршрута на системния регистър, Алекс. Това е чудесна идея - може би най-добрият начин да се справите с това.

      Съжалявам за мъртвата връзка - сега е поправена.

  2. 3

    успяхте ли да намерите доставчик, който ви позволява да направите това? (с изключение на наемане на специален сървър)

Какво мислите?

Този сайт използва Akismet за намаляване на спама. Научете как се обработват данните за коментарите ви.