Швидкий пробіг
- Потрібно створити домен підстановки на сервері DNS * .website.com
- Потім у вашому контейнері vhost вам також потрібно вказати підстановку * .website.com - Це робиться в документах
ServerAlias
DOC
- Потім витягніть та підтвердьте субдомен у PHP та виведіть відповідні дані
Довга версія
1. Створіть заголовок DNS для підстановки
В налаштуваннях DNS необхідно створити запис підстановлювальний домену , наприклад , як *.example.org
. Запис підказки виглядає приблизно так:
*.example.org. 3600 A 127.0.0.1
2. Включіть підстановку в vhost
Далі в конфігурації Apache вам потрібно встановити контейнер vhost, який визначає підстановку в директиві ServerAlias
DOC . Приклад контейнера vhost:
<VirtualHost *:80>
ServerName server.example.org
ServerAlias *.example.org
UseCanonicalName Off
</VirtualHost>
3. Опрацюйте, на якому субдомені ви перебуваєте в PHP
Потім у ваших скриптах PHP ви можете дізнатися домен, заглянувши в $_SERVER
супер глобальну змінну. Ось приклад захоплення субдомену в PHP:
preg_match('/([^.]+)\.example\.org/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
$subdomain = $matches[1];
}
Тут я використовував регулярний вимір, щоб дозволити людям, що потрапляють на ваш сайт, через www.subdomain.example.org або subdomain.example.org.
Якщо ви ніколи не передбачаєте, що вам доведеться мати справу з www. (або інші субдомени), тоді ви можете просто використовувати підрядку на зразок:
$subdomain = substr(
$_SERVER['SERVER_NAME'], 0,
strpos($_SERVER['SERVER_NAME'], '.')
);
Масовий віртуальний хостинг
Масовий віртуальний хостинг - це дещо інша схема вищезазначеної, оскільки ви зазвичай використовуєте його для розміщення багатьох різних веб-сайтів, а не для того, щоб намагатися використовувати його як додаток, як пропонує питання.
Я раніше задокументував своє масове віртуальне хостинг на основі mod_rewrite у своєму дописі на своєму блозі , який ви можете подивитися, чи це маршрут, який ви хочете пройти. Звичайно, є також відповідна сторінка керівництва Apache .
Apache також має внутрішній спосіб роботи з масовим віртуальним хостингом, який трохи менш гнучкий, ніж метод mod_rewrite, який я використовував. Це все описано на сторінці посібника з динамічно налаштованим масовим віртуальним хостингом Apache .
wildcard subdomains
, перегляньте моє рішення для цього.htaccess
.