El resumen rápido
- Debe crear un dominio comodín en su servidor DNS * .website.com
- Luego, en su contenedor vhost, también deberá especificar el comodín * .website.com: esto se hace en los
ServerAlias
DOC
- Luego extraiga y verifique el subdominio en PHP y muestre los datos apropiados
La versión larga
1. Crear una entrada DNS comodín
En su configuración de DNS, debe crear una entrada de dominio comodín como *.example.org
. Una entrada comodín tiene este aspecto:
*.example.org. 3600 A 127.0.0.1
2. Incluya el comodín en vhost
A continuación, en la configuración de Apache, debe configurar un contenedor vhost que especifique el comodín en la directiva ServerAlias
DOC . Un ejemplo de contenedor vhost:
<VirtualHost *:80>
ServerName server.example.org
ServerAlias *.example.org
UseCanonicalName Off
</VirtualHost>
3. Determine en qué subdominio se encuentra en PHP
Luego, en sus scripts PHP, puede encontrar el dominio buscando en la $_SERVER
variable súper global. Aquí hay un ejemplo de agarrar el subdominio en PHP:
preg_match('/([^.]+)\.example\.org/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
$subdomain = $matches[1];
}
He usado regex aquí para permitir que las personas accedan a su sitio a través de www.subdomain.example.org o subomain.example.org.
Si nunca anticipa tener que lidiar con www. (u otros subdominios), entonces simplemente podría usar una subcadena como esta:
$subdomain = substr(
$_SERVER['SERVER_NAME'], 0,
strpos($_SERVER['SERVER_NAME'], '.')
);
Hosting virtual masivo
El alojamiento virtual masivo es un esquema ligeramente diferente al anterior, ya que generalmente lo usaría para alojar muchos sitios web distintos en lugar de intentar usarlo para alimentar una aplicación como lo propone la pregunta.
He documentado mi entorno de alojamiento virtual masivo basado en mod_rewrite antes en una publicación en mi blog , que podría ver si esa es la ruta que desea tomar. También existe, por supuesto, la página de manual de Apache respectiva .
Apache también tiene una forma interna de tratar con el alojamiento virtual masivo que es un poco menos flexible que el método mod_rewrite que he usado. Todo esto se describe en la página del manual de Apache Virtual Mass Hosting configurado dinámicamente .
wildcard subdomains
, vea mi solución para hacerlo.htaccess
.