как сделать сайт на php, используя поддомены

Тема в разделе "PHP", создана пользователем vilk108, 13 ноя 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. vilk108

    vilk108

    Регистр.:
    17 дек 2007
    Сообщения:
    174
    Симпатии:
    41
    каким образом сделать сайт на поддоменах? То есть интересует чтобы были разделы сайта к примеру news.мойдомен.сом . И как сделать так что бы управление сайтом было с домена мойдомен.сом. То есть чтобы я мог управлять с домена мойдомен.сом разделом сайта - news.мойдомен.сом.
    Хочу услышать мнения как это сделано к примеру на сайте http://nnm.ru/ . Там разделы на поддоменах
     
  2. Hemi-Sync

    Hemi-Sync Постоялец

    Регистр.:
    17 дек 2006
    Сообщения:
    88
    Симпатии:
    38
    Разделы не нужно делать на поддоменах физически. Для этого нужно настроить wildcard на сервере. То есть все поддомены посредством dns записей указывают на сам домен. А там далее скрипт уже разруливает запрос (урл то не меняется и по нему ясно куда сделан запрос) и выводит либо сам сайт либо раздел. Движок один на все поддомены.
     
    vilk108 нравится это.
  3. vilk108

    vilk108

    Регистр.:
    17 дек 2007
    Сообщения:
    174
    Симпатии:
    41
    wildcard на сервере настраивается на любом хостинге? И пожалуйста обьясните как используя php скрипт вывести информацию с домена на поддомен. Я не понял принципа. Если можно на простом примере
     
  4. Hemi-Sync

    Hemi-Sync Постоялец

    Регистр.:
    17 дек 2006
    Сообщения:
    88
    Симпатии:
    38
    wildcard настраивается не на каждом хостинге, а если входит в услугу управления DNS записями. Там добавляется запись класса A вроде, ну в общем суппорт это дело хорошо знает.

    В итоге все запросы на домен или на любой поддомен автоматически рулят на корень твоего домена. А там лежит либо пхп скрипт, либо .htaccess. А вот в переменной $_SERVER['HTTP_HOST'] хранится запрошеный поддомен. По ней можно узнать, что за поддомен запросили и вывести разную инфу.

    Если и так непонятно, то вот другой пример.
    Если знаешь пхп хоть немного, то там параметры передаются в виде http://domain.com/index.php?id=9&sid=2
    А уже скрипт использует эти параметры. Это привычно всем.
    Так вот .htaccess (который лежит в корне домена и на который направляется запрос в итоге) может изменить реврайтом запрос http://subdomain.domain.com в привычный http://domain.com/index.php?page=subdomain
    Кстати на этом же принципе работают движки где можно поддомены и подпапки. Просто подменяетя .htaccess. А на выходе все тот же обычный http://domain.com/index.php?page=subdomain
     
    vilk108 нравится это.
  5. wellmax

    wellmax Постоялец

    Регистр.:
    9 июл 2008
    Сообщения:
    112
    Симпатии:
    33
    есть другой вариант. В папке поддомена инклюдить файл главного домена. А дальше разруливать как нужно
     
  6. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
    Сам понял что сказал? :) Делать тысячи поддоменов. Да его хостер первый выгонит.
     
  7. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221

    Вообще то вариантов много. Только нужен хостинг нормальный.Самый простой способ
    Делаете к примеру общую базу данных
    И поддомены к ней коннектите.
    Скрпиты ставите в поддомены и выводите что вам нужно.

    Или же использоватть алиасы к одной папке разные домены. и выводе скрипта условие вывода.
    Например если урл имеет вид
    xxx.domain или
    news.domain

    в индексе прописываем условие на вывод нужной категории скрипта.и она будет на нужном вам поддомене.

    К примеру погода.домен выводиться по условию погода.домен. и так далее. В общем можно заюзать один скрипт и все будет работать элементарно.
    Используя алиасы
     
  8. shuchkin

    shuchkin Писатель

    Регистр.:
    18 апр 2008
    Сообщения:
    8
    Симпатии:
    1
    В саааааамом простом случае

    В поддомен

    1) .htacces
    Код:
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule  ^(.*)$ index.php?url=$1
    </IfModule>
    2) index.php

    PHP:
    <?php

    require_once "where/your/engine/placed/index.php";

    ?>
    в основной домен:

    index.php
    PHP:
    <?php

    echo "DOMAIN: ".$_SERVER['HTTP_HOST']."<br/>";
    echo 
    "URI: ".$_GET['url']."<br/>";

    ?>


    Добавлено через 1 минуту
    А дальше уже начинается гимор
    Посмотри мульти доменные движки или фреймворки

    cakePHP
     
  9. best

    best

    Регистр.:
    12 апр 2006
    Сообщения:
    246
    Симпатии:
    54
    При этом изменении, вы можете изменить вашу ссылку новости.

    До: http://mysite.ru/download/415-adobe-photoshop.html

    После: http://415-adobe-photoshop.mysite.ru

    Открытое CPanel Вашего пребывания и перейдите на поддомены.
    Добавьте одну субдомен с таким именем: *
    (Например: *.mysite.ru)

    Открыть. Htaccess и найти:

    Rewriteengine On


    Добавить после:
    RewriteCond %{HTTP_HOST} ^([0-9]+)-(.*).mysite.ru [NC]
    RewriteCond %1 !^(www|ftp|mail)$ [NC]
    RewriteRule ^$ /index.php?newsid=%1 [L]

    RewriteCond %{HTTP_HOST} ^www.([0-9]+)-(.*).mysite.ru [NC]
    RewriteCond %1 !^(www|ftp|mail)$ [NC]
    RewriteRule ^$ /index.php?newsid=%1 [L]
    Важно: Замените имя домена, вместо: mysite.ru
    Открытое Engine/modules/show.short.php и найти:
    $config['http_home_url'].get_url($row['category'])."/".$row['id']."-".$row['alt_name'].".html";
    Замените этот код с:
    "http://".$row['id']."-".$row['alt_name'].".mysite.ru/";
    Важно: Замените имя домена, вместо: mysite.ru
    Ps. Для дле


    4dle_ru/hacks/1147156237-novosti-ssylka-na-subdomen.html
     
    lift нравится это.
  10. Monya

    Monya Постоялец

    Регистр.:
    24 янв 2008
    Сообщения:
    108
    Симпатии:
    14
    разделы там, уважаемый, НЕ на поддоменах, системы построенна с применением ЧПУ, этого можно добиться если правильно настроить "реврайт"... но это опять же таки зависит от того какую CMS вы собираетесь использовать и для каких целей...
    ПыСы: глядите в сторону "мультиблогов" они позволяют это сделать...
     
Статус темы:
Закрыта.