Szybki przegląd
- Musisz utworzyć domenę z symbolem wieloznacznym na swoim serwerze DNS * .website.com
- Następnie w kontenerze vhost musisz również określić symbol wieloznaczny * .website.com - odbywa się to w
ServerAlias
DOC
- Następnie wyodrębnij i zweryfikuj subdomenę w PHP i wyświetl odpowiednie dane
Wersja długa
1. Utwórz wpis DNS z symbolem wieloznacznym
W ustawieniach DNS musisz utworzyć wpis domeny z symbolem wieloznacznym, taki jak *.example.org
. Wpis z symbolem wieloznacznym wygląda następująco:
*.example.org. 3600 A 127.0.0.1
2. Dołącz symbol wieloznaczny do vhost
Następnie w konfiguracji Apache musisz ustawić kontener vhost, który określa symbol wieloznaczny w dyrektywie ServerAlias
DOCs . Przykładowy kontener vhost:
<VirtualHost *:80>
ServerName server.example.org
ServerAlias *.example.org
UseCanonicalName Off
</VirtualHost>
3. Sprawdź, na której subdomenie jesteś w PHP
Następnie w skryptach PHP możesz znaleźć domenę, patrząc w $_SERVER
super globalnej zmiennej. Oto przykład przechwycenia subdomeny w PHP:
preg_match('/([^.]+)\.example\.org/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
$subdomain = $matches[1];
}
Użyłem tutaj wyrażenia regularnego, aby umożliwić ludziom odwiedzanie Twojej witryny za pośrednictwem www.subdomain.example.org lub subdomain.example.org.
Jeśli nigdy nie spodziewasz się, że będziesz mieć do czynienia z www. (lub inne subdomeny), możesz po prostu użyć podciągu w ten sposób:
$subdomain = substr(
$_SERVER['SERVER_NAME'], 0,
strpos($_SERVER['SERVER_NAME'], '.')
);
Masowy hosting wirtualny
Masowy hosting wirtualny to nieco inny schemat niż powyższy, ponieważ zwykle używasz go do hostowania wielu różnych witryn internetowych, zamiast próbować używać go do zasilania aplikacji, jak sugeruje pytanie.
Moje środowisko wirtualnego hostingu masowego, oparte na mod_rewrite, udokumentowałem wcześniej w poście na moim blogu , do którego możesz się przyjrzeć, jeśli jest to droga, którą chcesz wybrać. Istnieje również oczywiście odpowiednia strona podręcznika Apache .
Apache ma również wewnętrzny sposób radzenia sobie z masowym wirtualnym hostingiem, który jest nieco mniej elastyczny niż metoda mod_rewrite, której użyłem. Wszystko to jest opisane na stronie podręcznika dotyczącego dynamicznie konfigurowanego masowego hostingu wirtualnego Apache .
wildcard subdomains
, zobacz moje rozwiązanie, aby to zrobić w.htaccess
.