| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Создание субдоменов |
| Автор: NNaarreekk 20.9.2009, 19:07 |
| Ну что вопрос наверно понятен. Но на всякий оглашу! Можно ли создать субдомены средствами РНР...Понятно что все пароли к хостингу имеем! Спасибо за умный ответ! |
| Автор: Ипатьев 20.9.2009, 19:24 |
| Исходя из формулировки вопроса, ответ зависит от конкретного хостера. |
| Автор: NNaarreekk 20.9.2009, 19:32 |
| Ипатьев, а причем тут хостер? Скажем хостер дает все права для изменения настройки и т.д. В этом случае можно как-то сделать?? |
| Автор: Ипатьев 20.9.2009, 19:54 |
| Хостер никогда не пустит юзера к ДНС. Юзер может создать домен только обратившись к каким-то инструментам. У всех хостеров инструменты разные. И еще. Очень рекомендуется, перед тем, как решать какую-либо задачу на РНР, сначала узнать, как она решается вообще, в общем случае. Это касается взаимодействия с любыми сетевыми протоколами и службами. |
| Автор: NNaarreekk 20.9.2009, 20:10 |
| Скажем так на хостинге стоит CPanelX...В нем есть возможность создавать субдомены...значит если знать какой он запрос делает серверу то можно будет его сделать и в другом месте не в СиПанель....я прав?? |
| Автор: pizzz 21.9.2009, 10:49 |
| Вобще можно и так. А можно править htaccess из php. А можно все поддомены направить на 1 скрипт, и уже там на php разбираться с поддоменами. |
| Автор: split 21.9.2009, 11:17 |
| Держи! Авто поддомены в Cpanel http://rapidshare.com/files/282936898/supersub.rar.html |
| Автор: Ипатьев 21.9.2009, 11:22 | ||
к сожалению, в одном htaccess прописать субдомен невозможно.
а вот это уже более здравая идея. если требуется автоматическое создание субдоменов, то, может быть, не требуется их создание вовсе? |
| Автор: NNaarreekk 21.9.2009, 11:43 | ||||
| IZ@TOP, спасибо за код...наверно разберусь!! Но тут прозвучала идея которая в конкретно моем случае самое оно:
У меня по всей вероятности именно этот случай...можно про это поподробнее?? split, сильный код спасибо...но не дял этого случая! |
| Автор: Ипатьев 21.9.2009, 11:53 |
| сделать запись в файле зоны для *.domain.com как это делается в инструментах вашего провайдера, мне неизвестно. наверное, есть какая-то галочка в интерфейсе. аналогично сконфигурировать и веб-сервер. |
| Автор: IZ@TOP 21.9.2009, 11:54 | ||||
Все очень просто. Сначала вам необходимо разобрать на зону, домен и сабдомены строку из $_SERVER['HTTP_HOST'], а потом уже в зависимости от данных выполнять определенные действия. Пример:
Это самый простой вариант и не учитывает множественной вложенности поддоменов вроде a.b.c.d.e.domain.zone. Что касается направления всех поддоменов на ваш хост - Ипатьев уже подсказал. |
| Автор: NNaarreekk 21.9.2009, 12:00 |
| Ипатьев, язнаю это плохо, но что делать я такой...мне нужно все разжевать и в рот положить! какая запись? ну скажем галочку поставил потом что с ней сделать? |
| Автор: pizzz 22.9.2009, 06:13 |
| Вот у меня у хостера в панели есть кнопка, все поддомены перенаправлять в рут директорию. То есть например есть сайт site.ru и при запросе отрабатывает index.php который лежит в корневой папке и который указан в htaccess как DirectoryIndex. Так вот. При запросе domen.site.ru запрос так же пойдет на index.php и в нем уже в переменной $_SERVER['HTTP_HOST'] будет храниться domen.site.ru. Если запрашивают pod.domen.domenov.site.ru то в переменной $_SERVER['HTTP_HOST'] будет храниться pod.domen.domenov.site.ru. Идея понятна?? Теперь в index.php парсим эту переменную ($_SERVER['HTTP_HOST']) и узнаем какой поддомен вызвали. От сюда пляшем как хотим... |
| Автор: NNaarreekk 22.9.2009, 17:05 |
| pizzz, спасибо..идея понятна..пойду хостинг мучать! темку не закрываю, наверно еще загляну!! |
| Автор: NNaarreekk 24.9.2009, 11:07 | ||
Наше это:
Оно???? |
| Автор: Ипатьев 24.9.2009, 11:20 |
| NNaarreekk, в мире очень много примеров конфигурации веб-сервера Апач. Пожалейте свое (и наше) время. Не стоит перебирать их все, в надежде, что какой-то будет иметь отношение к созданию субдоменов. Вы нашли в панели управления заветную галочку? |
| Автор: NNaarreekk 24.9.2009, 11:26 | ||
да но не все они находятся в теме http://forums.cpanel.net/f7/need-help-htaccess-folder-subdomain-redirect-80401.html Нет, все пересмотрел....еслиб знал я каком раздел искать было б легче. |
| Автор: Ипатьев 24.9.2009, 12:45 |
| Вам, наверное, надо понять сначала, что одними средствами веб-сервера субдомены не сделать. И поэтому искать среди них бесполезно. Домен относится к службе ДНС, а не веб. Рекомендую почитать что-нибудь на тему "интернет для начинающих". все коммуникации в интернете осуществляются по айпи адресам. чтобы сделать запрос к серверу, сначала браузер определяет его айпи адрес. по доменному имени. если для доменного имени не будет записи в днс, то сервер не будет знать, куда обратиться. и никакому веб-серверу запрос не пошлет. следовательно, как веб-сервер ни конфигурируй, не ксли к нему никто не обращается, то он ничего и не отдаст. поэтому конфигурировать надо ДНС. ДНС-ом рулит обычно провайдер. поэтому надо обращаться либо к предоставляемым им средствам, либо к технической поддержке. На форуме и в интернете искать решение вопроса бесполезно я понятно объясняю? |
| Автор: pizzz 24.9.2009, 13:02 |
| Оно???? Этот код меняет режим с http на https А спросить у вашего хостера как сделать поддомены не судьба??? |
| Автор: NNaarreekk 24.9.2009, 13:03 |
Понятно, но кажется не то. Причем тут ДНС если он все равно sub.mysite.com будет понимать как mysite.com?sub ? как я понял тут будет что-то наподобие mod_rewrite... я не прав? Добавлено через 2 минуты и 46 секунд попробую, но врядли он будет знать...особенно такие тонкости как перенаправление субдомена!) pizzz, может вспомнишь в каком разделе у тебя была эта галочка? |
| Автор: pizzz 24.9.2009, 13:16 | ||
Ваш хостер? 1gb -> Панель управления->Управление сайтами и серверами и вот так надо поставить галочку: автоматическое направление доменов 3-го уровня (вида abc.domain.ru) в подпапки (вида abc), только для Apache домены всё равно нужно создавать!, смотрите статью |
| Автор: Ипатьев 24.9.2009, 13:19 |
| чтобы sub.mysite.com указывало на тот же ip адрес, что и у mysite.com, должна быть запись об этом в ДНС |
| Автор: pizzz 24.9.2009, 13:33 | ||
Добавлено через 53 секунды NNaarreekk, Ипатьев прав. Парьте своего хостера... |
| Автор: NNaarreekk 24.9.2009, 13:34 | ||||
Ну если сделать запись то это уже не получаются "виртуальные" субдомены, о чем и говорилось.
Ну если под Апач не сработает, тогда всетаки придется создавать субдомены(( не понял вопрос...зовут Виген Добавлено через 1 минуту и 56 секунд
Не понял...как такое возможно? Создал субдомен и он сразу обрабатывается index.php??? |
| Автор: brother79 22.10.2009, 09:58 |
| Кстати по поводу поддоменов. Похожая проблема: 1) к настройкам ДНС доступа нету, ограничение хостинга 2) из php файла могу инклудить только файлы из подкаталогов, тоже ограничение хостинга 3) с созданием ссылок - что-то не получилось, тут 2 вар-та возможны или мои руки кривые или тоже ограничение хостинга, тему пробью попозже. Соответственно надо сделать поддомены так чтобы не делать кучу копий сайта. Единственно возможный вар-нт я просматриваю - htaccess, дабы там редиректить или положить какой-то файл, который бы делал редирект. Меня волнует всё это по отношению к сео как будет?. т.е. мне надо чтобы снаружи ото был поддомен, а реализованно одним сайтом, без копий. С параметрами - я разрулю, а вот как правильно сделать редирект, чтобы при этом поисковики меня нормально принимали? |
| Автор: Ипатьев 22.10.2009, 12:50 |
| Молодые люди. Вы подрываете мою веру в человечество. Я еще могу понять, вы можете не понимать смысла различных сетевых протоколов. Но если вам 3 раза русским языком написать, что ДНС из htaccess не управляется - это можно хотя бы понять? |
| Автор: brother79 23.10.2009, 09:06 | ||
Никто не говорит что из htaccess управлять ДНС, вопрос был можно ли то, что приходит в htaccess перенаправить на совсем другой поддомен, который также существует, как и первый. |
| Автор: Ипатьев 23.10.2009, 09:45 | ||
А при чем здесь тогда доступ к ДНС? И при чем здесь тогда "похожая проблема"?
Осталось только объяснить, зачем нам вдруг упало перенаправление, если сайт у нас все равно один, а мы не хотим делать его копию. ДНС запись поддомена ведет на тот же айпи, на котором основной домен? Веб-сервер на основном домене сконфигурирован, как сервер для субдомена? |
| Автор: brother79 23.10.2009, 11:02 | ||||||
ПРи том, что решение через ДНС не подходит ибо ограничение хостинга Пр том, что надо сделать так, чтобы код выполнялся один, а поддоменов было несколько
На хостинге можно создавать неограниченное кол-во поддоменов через панель, на каждый поддомен создаётся своя папка, в которую ложится сайт.
т.о. отделаться малой кровью - т.е. созданием какого-то индивидуального index.php в каждом каталоге, который бы использовал все модули, лежащие в одном месте - у меня не получилось. Те модули на которые будет перенаправление с поддоменов, в основном сайте показываться не будут. Надо именно так, чтобы оно показывалось как поддомен, только для этой цели всё и надо, чтобы разделить адреса по поддоменам.
ip общий, далее ничего сказать не могу, могу только в службу поддержки отписаться с конкретным вопросом, но пока все вар-ты, которые я спрашивал завершались ответом, "На данном тарифе такие ф-ии не поддерживаются". Менять хостинг или тариф - не подходит, т.к. пока это не рентабельно. Добавлено @ 11:11 Самым простым и правильным было бы для моей проблемы - В ДНС прописываем все поддомены на один каталог, а в htaccess обеспечить чтобы приложение знало с какого поддомена на него пришли, да даже кажется htaccess для этого не нужен, оно вроде в переменной $_SERVER есть, и всё, если бы не ограничения хостинга. Это я к тому, если всё ещё не ясно суть вопроса. |
| Автор: Ипатьев 23.10.2009, 11:15 | ||||
Вы так и не поняли, что такое ДНС. ДНС - это не решение. Это условие. Критическое. Если есть запись в ДНС, можно искать решение. Если нету - хоть "войну и мир" в htaccess перепиши - работать все равно не будет. У вас это условие выполняется. Судя по вашим словам. То есть, о ДНС вспоминать вам не надо. Поскольку никакого решения эта служба не дает. Решение - это уже конфигурация веб-сервера.
сам по себе индекс не поможет. ведь обращения бывают не только к индексу, а, скажем, еще к картинкам. Так что самое простое решение - организационное. Сменить хостинг/тариф или разобраться, что на самом деле все можно сделать. Тут недавно похожий случай был. Один товарищ заявлял, что возможности использовать базу данных у него ну никакой нету. Потом все-таки уговорили. Нашлась возможность. Хотя долго ерепенился. Вам я тоже порекомендую шире смотреть на вещи. Не пытаться решать проблемы только техническими методами (которые вам еще и не очень понятны). Иногда организационное оказывается дешевле на порядки. |
| Автор: brother79 23.10.2009, 11:27 | ||||||
Может я в терминологии и накосячил, но реч о том и шла, что сконфигурировать сервер так, чтобы он на в разные папки поддомены направлял, а в одну. Такое прекрасно прописывается если есть доступ к настройкам.
Не надо создавать новых задач. Я какнь-дь уж определюсь с картинками, у меня цель общие модули в одном месте хранить.
Мне только надо было узнать в каком случае и при каких условиях можно из htaccess перенаправить на другой поддомен. По поводу смены хостинга - не сейчас просто, счас пока другие приоритеты. |
| Автор: Ипатьев 23.10.2009, 11:42 | ||||
Да. Только не к настройкам ДНС. К папкам ДНС не имеет никакого отношения. Раз уж вы решили, в нарушение правил, влезть со своим вопросом в чужой, то хотя бы читали объяснения, которые я давал выше.
ну-ну. и что же тогда такого сложного оказалось в написании единственной строчки с инклюдом в index.php?
мне кажется, такое перенаправление не имеет смысла. какой смысл давать один адрес, если при обращении к нему все равно тут же перекинет на другой? |
| Автор: Ипатьев 23.10.2009, 12:02 |
| Я так начинаю догадываться, что вы хотите перенаправлять не на другой домен, а в другой каталог? Только сказать толком не можете. Если так, то выходит что на вторые сутки мы сумели сформулировать вопрос. Который, в итоге совсем не сюда, а в http://forum.vingrad.ru/forum/web-server-and-service-administration.html. Задача, на мой взгляд, вполне решаемая. Я только не знаю, сработает ли рерайт выше док рута. Но проверить нетрудно. |
| Автор: brother79 23.10.2009, 13:26 | ||||||||||||
Вопрос тот же, по сути, задача стоит та же, только я хотел применительно к моим ограничениям, объяснения я читал, идеально подошло бы это:
если бы не ограничения хостинга.
В настройках php или appach есть некая опция, которая запрещает инклудить файлы из разных каталогов, другими словами или из подкаталогов или из каталогов специально разрешённых. т.о. для каждого поддомена не может быть общих файлов php, ограничение тарифа. Об этом я упоминал несколько раз:
Смысл для поисковиков, т.к. поддомены они воспринимают всётаки отдельно и индексация будет другой
буду проверять вечером |
| Автор: Ипатьев 23.10.2009, 14:21 | ||
вместо того, чтобы долбить одно и тоже, лучше бы вы попытались понять, что вам говорят в моем сообщении, которое вы цитируете, две части 1. сделать запись в файле зоны для *.domain.com 2. аналогично сконфигурировать и веб-сервер вашего случая касается только вторая часть. а первая, о чем я уже говорил много раз - никакого отношения не имеет. поэтому между вашими вопросами принципиальная разница. какая конкретно опция и какие конкретно сообщения об ошибках она выдает?
для поисковиков вообще не будет никакого смысла, если с поддомена будет редирект на другой. Такого поддомена для поисковика не существует. Ну хотя бы на самом начальном мизерном уровне надо знать технологию перед тем, как начинать ваять свои грандиозные проекты? Зачем вам перенаправление с одного домена на другой? |
| Автор: gcc 24.10.2009, 11:13 | ||
| лучше сервер, ставишь PowerDNS который работает с MySQL, настраиваешь apache и чтобы он, тоже, хранил vhost в MySQL и все или текстовые файлы обрабаытваешь (удалять/добавлять) Добавлено @ 11:20 добавить А запись в Bind9 можно так:
|
| Автор: nerezus 24.10.2009, 13:29 | ||
|
| Автор: brother79 24.10.2009, 18:52 | ||||
Честно сказать, мне это уже надоедает. Я понял что у вас несомненно опыта больше, но по существу всёравно информации почему-то немного.
Я не помню счас, общался со службой поддержки, они мне объяснили, в т.ч. и пояснили, меня к этим настройкам доступа нету, поэтому это уже не принципиально, и письмо как раз нужное удалил, остались те, что перед и после были. Сообщений об ошибках я не видел, до изучения системных логов не дошёл, а когда пытался получить список файлов из родительского каталога средствами php от был всегда пустой. Я думаю вы уже и не поймёте, я не раз говорил, что мне нужен поддомен, а не банальный редирект |
| Автор: Ипатьев 24.10.2009, 19:30 | ||||
Я-то, как раз, давно понял:
А от вас слышно только
и из этих слов читатель должен сделать вывод, что вам нужно перенаправление которое не редирект. на поддомен, ага. читатели, попались непонятливые. они виноваты в том, что вы не понимаете смысла слов "поддомен", "редирект" и многих других. а у вас все отлично. "ошибок я не видел, логи не смотрел, письмо стер". выглядит не как слова человека, который хочет решить свою проблему, а как ответы карманника гражданину следователю на допросе. |
| Автор: NNaarreekk 26.10.2009, 10:49 | ||
| Решил проблему так. Создаю руками субдомен, в него вставляю файл индекс.рнр:
а потом беру через x какой сайт мне нужен. Есть 2 проблемы: 1. Куки создаются не для субдомена а для домена 2. труднее будет счетчик писать для каждого сайта |
| Автор: DeamonShan 29.4.2010, 13:39 | ||
| Попробуйте разобраться в WPMU (Wordpress MultiUser) там аналогичная зада решена и грамотно. один движок отвечает за все блоги. Ипатьев Вас наводит на правильный путь, но вы не понимаете его походу. CPanel позволяет редактировать файл зоны вашего домена, туда достаточно добавить строчку:
и настроить апач, то есть также направлять все запросы в папку со скриптом..то есть указать для всех *.domains.ru RootDirectory движка. Посля этого все запросы на поддомены буду направляется в тут папку в которой находится ваш скрипт, а дальше уже ловкость рук да знание пхп. |
| Автор: brother79 30.4.2010, 05:50 |
| Я кстати свою проблему давно решил, оказывается в панели есть такое понятие как "альтернативные имена доменов", а далее через htaccess всё разруливается как надо. |
| Автор: MoLeX 30.4.2010, 06:17 |
| некрофилы. на дату то смотрели? |