Падстаноўныя DNS і дынамічныя паддамены

Увесь свой вольны час (ха!) Я працаваў над тым, каб абгарнуць Неабмежаваная карта дзікіх птушак дадатак з карпаратыўным дадаткам, якое дазволіць людзям распрацаваць уласны лакатар крам. Распрацоўка ўласнага праграмнага забеспячэння як сэрвіснага рашэння была маёй мэтай ужо некалькі гадоў, і гэта выдатная магчымасць.

Ёсць дзве ключавыя асаблівасці, якія я хацеў уключыць у дадатак, і якія апынуліся велізарнай праблемай, таму я хацеў абмеркаваць іх у выпадку, калі вы калі-небудзь хочаце зрабіць тое ж самае. Абедзве функцыі з'яўляюцца звычайнай з'явай для ўсіх прыкладанняў, але я даведаўся, што, нягледзячы на ​​тое, што яны звычайныя, многія пастаўшчыкі хостынгу на самой справе іх не падтрымліваюць!

Мая мэта складаецца ў стварэнні дадатку самаабслугоўвання, дзе кліент можа наладзіць уласны паддамен (http://субдомен.myapplicationdomain.com), альбо нават прымяніць уласны паддамен (http://субдомен.yourdomain.com). Для яго самаабслугоўвання патрабуецца магчымасць праграмавання рашэння, але ён мае доступ да некаторых файлаў канфігурацыі сервера даменных імёнаў, якія забаронены для большасці ўліковых запісаў хостынгу! Праблема заключаецца ў падтрымцы 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 і mail
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. 3

Што вы думаеце?

Гэты сайт выкарыстоўвае Akismet для барацьбы са спамам. Даведайцеся, як дадзеныя апрацоўваюцца каментар.