Когда вы подписываетесь на Blogger или WordPress, вы получаете свой собственный поддомен, который работает мгновенно. Как я могу достичь того же, учитывая, что у меня есть собственный VPS/VDS/выделенный сервер?Создание субдоменов на лету
ответ
В двух словах:
- Создание подстановочных домена в DNS (то есть, разрешение whatever.yourdomain.example возвращает свой IP),
- создать виртуальный хост по умолчанию в вашем веб-сервере и
- проверьте URL-адрес в своем приложении.
Как это сделать, зависит от того, какую технологию вы используете. Позвольте мне дать вам несколько примеров:
- Как настроить подстановочный домен in BIND и in Windows Server DNS.
- Чтобы создать виртуальный хост по умолчанию, вам просто нужно создать веб-сервер без записи хоста в IIS. В Apache первым виртуальным хостом, указанным в файле конфигурации, становится основной узел.
- Здесь вы можете либо (а) переписать URL в зависимости от домена (т.е. преобразование субдомен в качестве параметра в URL, example for ASP.NET, примеры для Apache с mod_rewrite: Link1, Link2), или (б) просто посмотрите на основную часть URL-адреса (например,
Request.Url
в ASP.NET).
Дополнение от bortzmeyer (извините за перезапись правку, там был править конфликт):
Синтаксис шаблона, в формате обычного зоны DNS (описано в RFC 1035 и реализованы в BIND, НРД и может быть другими) со звездой:
* IN A 198.51.100.3
+1 Спасибо Heinzi. Не могли бы вы подробнее рассказать о примерах? Я был бы очень признателен за вашу помощь! – Viet
@Viet: Я продлил ответ. Если вам нужна дополнительная информация (например, о некоторых конкретных технологиях), просто спросите. – Heinzi
+1 Спасибо Heinzi & bortzmeyer !! Могу ли я указать номер 3. для Apache 2.2? Огромное спасибо! – Viet
для тех, кто являются мирянами ко всему этому A и CNAME вещи, есть очень простое решение, и работает с общим хостингом:
Просто зайдите в свой CPanel и добавить субдомен *
Например, если ваш домен называется abc.com, вы можете добавить * и выберите/введите подкаталог в качестве корня к этому. Когда вы сохраните, он добавит * .abc.com в таблицу поддоменов и добавит все необходимые записи A в ваш зонный файл.
Когда вы нажмете «любой» .abc.com в своем браузере, сервер выведет вас в указанное место (указанный вами подкаталог).
Кроме того, чтобы обрабатывать все (любые) поддомены для конкретного перенаправления, вы можете использовать .htaccess в этом подкаталоге для обработки всех входящих запросов субдомена.
Работающий .htaccess пример выглядит следующим образом:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^(^.*)\.abc\.com
RewriteRule (.*) handler.php?user=%1&%{QUERY_STRING}
</IfModule>
В handler.php (код ниже) просто отображает приветственное сообщение с поддомена и все строки запроса в URL:
$user = $_REQUEST["user"];
print_r($_REQUEST);
echo "Welcome {$user}";
Надеюсь, это поможет.
+1 спасибо Waquas. Попытаюсь :) – Viet
Замечательный вопрос. Я никогда не знал, что это возможно. –