Привет гость
User:
Pass:
Входить автоматически:
Регистрация!

Статьи

Статьи->Web-технологии.->Автоматичесике поддомены + PHP + .htaccess [ Поиск ]

Автоматичесике поддомены + PHP + .htaccess
Заголовок Автоматичесике поддомены + PHP + .htaccess
Описание
Отправил BMG

Задача:

Создание поддоменов из формы на странице сайта. Например дать возможность пользователям создавать поддомены для своих персональных страничек.

Решение:

1. В настройках ДНС создаем запись типа А *.site.ru указывающую на IP сервера

2. В корне сайта создаем файл .htaccess с таким содержанием:

RewriteEngine on
RewriteBase 
/
RewriteCond %{HTTP_HOST} !^www.site.ru$
RewriteCond %{HTTP_HOST} (www.)?(.*).site.ru$
RewriteCond %{REQUEST_URI} !sub/
RewriteRule ^(.*)$ sub/%2/$

где sub - это папка в корне сайта. В ней будут создаваться папки для поддоменов.

3. Делаем на сайте форму:

 .site.ru  

<form id="addsub" action="subdomain.php" name="addsub" method="post" enctype="multipart/form-data"> <input type="text" name="sub" size="8" /> .site.ru  <input type="submit" size="10" name="subdom" value="OK"> </form>

4. Создаем обработчик subdomain.php:

<?
$sub = preg_replace('/[^A-Za-z0-9-]/', '', $_POST['sub']);
$url="Фактический адрес страницы";
$DB->query("SELECT sub FROM subdomains where sub='$sub' ");
$row = $DB->fetch_row();
if ($row){
echo "Имя уже используется";
}else{
$DB->query("INSERT INTO subdomains (sub, url) VALUES ('$sub', '$url')");
if(!file_exists($_SERVER['DOCUMENT_ROOT']."/sub/$sub")){mkdir($_SERVER['DOCUMENT_ROOT']."/sub/$sub");}
$fp = @fopen($_SERVER['DOCUMENT_ROOT']."/sub/$sub/.htaccess", 'w');
if ($fp) {
$line = "RewriteEngine on\nRewriteRule (.*) {$url} [L]";
@fwrite($fp, $line);
}
@fclose($fp);
echo "Поддомен создан";
}
?>

Голосов Голосов: 2 - В среднем: 5

Добавить комментарий Оценить
Комментарии

Статистика
Всего 12 статей в базе
Наиболее просматриваемые: Не подключается локальный принтер в терминале
Лучшие по оценкам: Не работает поиск в outlook 2010

Пользователи в разделе статьи: 1 (0 Пользователи 1 Гости и 0 Скрытые пользователи)
Видимые пользователи:


 

MKPortal ©2003-2024 mkportal.it

Яндекс.Метрика ©2010 Design by BMG