Вам просто нужно открыть сокет, выполнить аутентификацию, а затем отправить запрос, содержащий информацию о новом субдомене Например: https://gist.github.com/hsali/3385f76118d7f3920a19841f4145b2a9#file-create_subdomain_cpanel-php Извините за плохой русский язык, я английский говорящий
Создайте файл .htaccess в корне сайта и впишите в него следующий код: RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} !^www\.domain\.(com|ru)$ RewriteCond %{HTTP_HOST} (www\.)?(.*)\.domain\.(com|ru)$ RewriteCond %{REQUEST_URI} !sub/ RewriteRule ^(.*)$ sub/%2/$1 Теперь подробно остановимся на каждом пункте. Для запуска mod_rewrite используется команда RewriteEngine on, если ее закомментировать, то весь код перестанет работать, часто это бывает очень полезно. RewriteBase указывает на использование текущей папки. RewriteCond устанавливает правила, в зависимости от которых будет или не будет произведена замена адреса. В первом случае проверяется является ли поддомен с названием www, естественно его перенаправлять не нужно, поэтому перед строкой стоит восклицательный знак, обозначая отрицание. В скобках указано com|ru, используется только если вы имеете два одинаковых домена в разных зонах и они являются псевдонимами (алиасам) другу друга. Если вы используете один сайт, то запись будет такой: RewriteCond %{HTTP_HOST} !^www\.domain\.com$ Во втором RewriteCond проверяется наличие в имени адреса поддомена, причем работать будет одинаково с www и без него, т.е. сайты www.forum.domain.com и forum.domain.com будут обрабатываться одинаково. Третье условие используется для проверки уже исправленного адреса, т.к. mod_rewrite выполняется пока условия перестанут подходить. Итак мы проверяем в строке запроса (URI, то что идет после имени домена, например /info.html) наличие папки куда мы перенаправили запрос, в данном случае это sub, перед ним стоит восклицательный знак, который сообщает, что условие не должно выполняться при наличии такой подстроки. И наконец само правило преобразования адреса RewriteRule. В нем мы заменяем строку запроса на новый адрес: sub + второй найденный элемент (условие RewriteCond %{HTTP_HOST} (www\.)?(.*)\.domain\.(com|ru)$, то что находится во вторых скобках) + адрес, который был изначально ( описанный в том же RewriteRule: ^(.*)$) Перед запуском этого скрипта вам необходимо создать в папке sub необходимые вам папки поддоменов. Лучше воздержаться от использования в качестве метки и основной папки простое слово типа sub, т.к. оно может оказаться в адресе страницы, лучше использовать произвольный набор символов. Бывают ситуации, когда необходимо использовать два разных адреса для одной и той же папки, например: domain.com/forum/ и forum.domain.com В данном случае у нас на сервере уже есть папка forum, и полностью копировать ее еще и в папку sub не очень удобно и не совсем правильно. Найденный вариант использования mod_rewrite не совсем универсальный, но все позволяет обслужить конечное число поддоменов: RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^forum\.domain\.(com|ru)$ RewriteCond %{REQUEST_URI} !/forum/ RewriteRule ^(.*)$ /forum/$1 [L] Сначала проверяем нужный нам поддомен forum.domain.com (или forum.domain.ru). Потом ищем строку /forum/ в самом запросе, проверяя не изменили ли мы уже этот адрес. И наконец делаем преобразование. Знак [L] обозначает окончание преобразования, если это правило выполнилось, то дальнейшая обработка прекращается. Таких правил может быть сколько угодно, главное не забывайте о наличии нужных папок на сервере. В некоторых случаях в панели хостинга нужно прописать алиас для вашего домена. Обычно там описаны два варианта: domain.com и www.domain.com Вам нужно добавить строку: *.domain.com Теперь, когда все настроено и работает, возникает проблема со ссылками Sape. Они не будут нормально отображаться, потому что фактически адрес ссылки изменился, был http://forum.domain.com, а стал, например, http://domain.com/sub/forum/, поэтому в коде Sape нужно прописать новый хост и путь к папке с базой. Выглядит это примерно так: if (!defined('_SAPE_USER'))define('_SAPE_USER', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'); require_once($_SERVER['DOCUMENT_ROOT'].'/sub/forum/'._SAPE_USER.'/sape.php'); $o['host']='forum.domain.com'; $sape = new SAPE_client($o); echo $sape->return_links(); Обратите внимание на путь к файлу sape.php в require_once и новое имя домена в $o['host']