Как вы создаете субдомены с помощью PHP? Возможно ли на виртуальном хостинге? - PullRequest
1 голос
/ 01 марта 2010

Мне интересно создавать субдомены на лету прямо из php. Например, когда пользователь создает новую страницу, я хочу, чтобы эта страница была newpage.mydomain.com. Это возможно без изменения файлов конфигурации php или apache (предположим, я использую учетную запись общего хостинга).

Позже Редактирование: я говорю о своем домене, и у меня есть полный доступ к области администрирования домена.

Ответы [ 3 ]

1 голос
/ 01 марта 2010
  1. Установите документ с ошибкой в ​​вашем файле .htaccess, который перенаправляет каждые 404 в файл с именем возможно redirection.php. Этот файл .php обрабатывает перенаправления «на лету».

  2. Добавьте в файл зоны запись DNS с подстановочными знаками, чтобы [anyhere] .yourdomain.com указывал на IP-адрес вашего веб-сервера

  3. Добавьте подстановочный символ serveralias в свои конфигурации apache, используя: ServerAlias ​​* .yourdomain.com

  4. Введите следующий код в ваш файл redirection.php.

.

<?php

$url = $_SERVER["REQUEST_URL"];
$newurl=str_replace(".yourdomain.com","",$url);
$newcomplete="http://yourdomain.com/".$newurl;
Header("Location: ".$newcomplete);

?>

Это немного помогает?

0 голосов
/ 01 марта 2010

это невозможно только через php.и я не думаю, что виртуальный хостинг позволяет это.в любом случае, для этого вам нужно иметь домен (или иметь разрешение на редактирование записи DNS), затем вы можете добавить запись с подстановочными знаками, чтобы позволить любому поддомену указывать на один компьютер (идентифицируемый по его IP-адресу)

edit (из комментария Powerlord)

apache должен перенаправить каждый поддомен на один и тот же vhost обычно с ServerAlias *.example.com в конфигурации vhost

/ edit

, затем в php вы можете проверить, какиес субдомена страница запрашивается путем разбора (разбиения) $_SERVER['HOST_NAME']

например:

$host = explode ('.', $_SERVER['HOST_NAME']);
array_pop ($host);
array_pop ($host);
$subdomain = join ('.', $host);
0 голосов
/ 01 марта 2010

Да, вы можете сделать это. Вы должны убедиться, что сначала вы установили подстановочный знак * Запись для вашего домена в панели DN регистра вашего домена.

После того, как вы настроили шаблон, вы можете просто посмотреть на>

 $_SERVER["SERVER_NAME"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...