Crear subdominios dinámicos con .htaccess
Puede resultar muy interesante la opción de los subdominios para mostrar el contenido de una página web, podemos usar como ejemplo conocido por todos como es softonic donde cada aplicación tiene un subdominio para ella.
Aunque parezca complicado de realizar es muy sencillo gracias a htaccess, aunque el primer paso antes de nada es apuntar las DNS del dominio al servidor, para ello añadiremos a los registros que ya tenemos el *.dominio.com apuntando a la IP del servidor que gestione la página web.
Una vez que tengamos los dominios apuntando ya podremos comenzar a trastear y necesitaremos sacar el parámetro de la URL desde donde entran para saber que datos nos están pidiendo, para ello podemos utilizar htaccess de la siguiente forma:
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^www\.dominio\.com$ RewriteCond %{HTTP_HOST} ([^.]+)\.dominio\.com$ RewriteRule (.*) /carpeta/index.php?dato1=%1&dato2=$1 [QSA] |
En este ejemplo lo que conseguiremos es poder recoger dos datos pudiendo usarlo de la siguiente manera dato1.dominio.com/dato2 podemos mostrar si no tenemos dato2 página de inicio de la ficha dato1 que nos interese y generar diversas páginas para esa ficha con dato2. Os recomiendo usar dato2 para mostrar también un sitemap.xml y un robots.txt de lo que contenga todo ese perfil para ayudar a los buscadores a indexar todo el contenido.
Para recoger los datos con PHP simplemente tendremos que usar $_GET[‘dato1’] y $_GET[‘dato2’].
if (!empty($_GET['dato1'])) { $ficha = $_GET['dato1']; echo 'Estamos en el subdominio '.$ficha; if (!empty($_GET['dato2'])) { $contenidoficha = $_GET['dato2']; echo 'Contenido'.$contenidoficha.' del subdominio '.$ficha; } } else { echo 'No es un subdominio'; } |
Lo que se hace en este ejemplo de código es conocer que es lo que se nos está solicitando, si la información de una ficha, si una página concreta de esa ficha o si se accedió a través de una URL que no es la correcta.
Como ya sabréis existen muchas otras formas de realizar esto pero a mi parecer esta es una de las maneras más sencillas y rápidas de realizarlo.
Buenas, llevo mucho tiempo buscando la manera de hacer esto.
No lo he conseguido por el primer paso, agregar *.dominio.com
podrias explicar esto.
Dispongo de un dominio, un shared hosting y acceso mediante cpanel.-
Creo que el problema es que no se puede poner dominios con * en cpanel.
saludos y gracias
Si tienes acceso a Simple DNS Zone Editor simplemente tienes que poner en Add an A Record *.dominio.com. y la IP. Hay algunos hosting que no dan acceso a este panel. Acuérdate de esperar una horas para que se propague.
Buenas se que el articulo es algo viejo, pero lo estoy usando y me funciona bien, el problema es que cuando entra en la pagina gracias al subdominio, no carga ningun script y nincun css, porque los esta buscando en
ejemplo.midominio.com/css/…
Y esta ruta realmente no existe en el servidor.
Muchas gracias de antemano
Puedes solucionarlo usando rutas absolutas con el dominio principal
si es cierto pero no es una buena solucion, tengo muchos css, muchos java scripts y muchas paginas que usan estos recursos, y el cambio es muy grande.
Asi que esta seria mi ultimo recurso.
Gracias igual.
Salduos.
Hola como estas, tengo una pagina donde cada subdominio debe tener el nombre de la ciudad ejemplo
guayaquil.dominio.com
quito.dominio.com
pero obviamente no voy a crear un subdomio por cada ciudad que son mas de 200 entonces lo quiero hacer por medio de .htaccess variables es decir
dominio.com/?city=guayaquil tiene que equivaler a guayaquil.dominio.com
como podria hacer eso?. Osea la regla htaccess. La que tienes arriba no me funciona 🙁