Configurar wildcard subdomains para tener subdominios dinámicos

Tener subdominios dinamicos es mucho más barato que tener varios dominios ya que solo necesitas uno y puede ser muy útil en tu web por ejemplo si vas a:

  • internacionalizar el sitio: http://es.dominio.com, http://en.dominio.com
  • para que cada usuario tenga su propio subdominio: http://gafeman.dominio.com
  • para anuncios clasificados en una ciudad: http://madrid.dominio.com

Que sepa sólo se puede hacer en servidores dedicados, como por ejemplo hetzner.

Requisitos:

  • Poder administrar el fichero de entradas DNS de tu dominio
  • Tener apache y mod_rewrite en tu servidor
  • tener permisos para conectarte al servidor via SSH

Pasos:

1. Editar entradas DNS del dominio, es un fichero con un contenido parecido a este:

www                      IN A       ip
ftp                      IN CNAME   www
imap                     IN CNAME   www
loopback                 IN CNAME   localhost
pop                    IN CNAME   www
relay                    IN CNAME   www
smtp                     IN CNAME   www

@                        IN MX 10   mail

añade la siguiente linea debajo de la linea que empieza por www:
* IN A www

2. Edita la configuración del dominio apachetienes que añadir la siguiente linea en negrita para que acepte los subdominios:

ServerName dominio.com
ServerAlias *.dominio.com
ServerAdmin webmaster@localhost

3. Crea un fichero .htaccess en la raiz de tu servidor

Options -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

4. Reinicia el apache, en la terminal y conectado por SSH a tu servidor ejecuta el siguiente comando:

/etc/init.d/apache2 reload

5. Obtiene el subdominio con PHP

$subdominio = current( explode( ‘.’, $_SERVER['HTTP_HOST'] ) );

Por ejemplo con el dominio http://madrid.dominio.com, $subdominio tendría el valor madrid.

Ejemplos:

Enlaces de interés:

Servidores      16 Diciembre, 2009      1263 lecturas      3 comentarios

  1. Alex Barros

    Genial! Conocía todo menos la parte final de cómo obtener el subdominio en el código PHP!


    Un apunte: en el punto 4, para reiniciar apache, dependiendo del servidor se usa un comando u otro, dependiendo de dónde se encuentra el ejecutable.


    En el mio por ejemplo utilizo /usr/sbin/httpd -k restart cuando quiero reiniciar el servidor.



  2. devir

    pues tu post esta buneo pero en realidad no se entiende mucho deberias de expecificar archivos y ruta para poder saber como va todo y si podes con figuras mejor ya que estoy tratando de configurar subdominios que esten en diferente servidor pero no lo he logrado si pudieras decirme como y como enlazar las otras maquina te lo agradeceria



  3. Kalvin Manson

    Estoy tratando de hacerlo pero sin un servidor dedicado, con un compartido de host gatos, sigo experimentando, si consigo algo les aviso. xD


    Si alguien consigue algo tambien aviseme. xD









Additional comments powered by BackType