Si queremos tener subdominios dinámicos en nuestro sitio web, solo tendremos que crear esta sencilla regla de rewrite.
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(.+)\.dominio\.com
RewriteRule .* /index.php?s=%1 [L]
De esta manera si recibimos esto: http://usuario.dominio.com la regla lo que ejecuta es http://www.dominio.com/index.php?s=usuario
Obviamente tendremos que tener el apache configurado con el mod_rewrite.
If you enjoyed this post, make sure you subscribe to my RSS feed!
Esto…y luego preguntas: ¿Quien controla de rewrite?
Bueno, a base de documentación aprende uno ^_^ y de usar el tito google
Una pregunta: Despues de ejecutar RewriteRule, ¿cambia la direccion de la pagina?
Me explico: si yo coloco: http://algo.mipagina.com, despues del RewriteRule, se actualiza la direccion a http://www.mipagina.com/index.php?s=algo o conserva la direccion escrita inicialmente?
Buenas Kulent,
Lo que usa el Rewrite es totalmente transparente para el usuario, el usuario navegaría sobre http://algo.mipagina.com mientras que realmente está usando la url de http://www.mipagina.com/index.php?s=algo es decir… Si ^_^
uhmmm y me podrian decir donde inserto este codigo??:S
Pues si tienes acceso al apache modificas la configuración para tener un archivo con las instrucciones del rewrite y en caso contrario deberías crear un fichero .htaccess en la raiz de tu dominio. Si tienes alguna duda de como crear el .htaccess avisame y te pongo un ejemplo.
Hola mario, podrias indicarme como crear el .htaccess, pero hazlo bien clarito, como si lo explicaras a un niño de 5 años jeje, ademas me gustaria saber cual es el procedimiento que deberia realizar un usuario para crear un subdominio con este sistema. muchas gracias.
Bien, en cuanto tenga un momento redacto un post dedicado al .htaccess :-)
ola gracias por la respues pero me podrias decir donde ubico la raiz de un dominio en la carpeta www en el ftp???
hola que tal?, tengo el cpanel pero no encuentro donde entrar a la configuración de apache para escribir el rewrite, podrian ayudarme?
Alguien lo probó? porque no me funciona.
Tengo rewrite funcionando con otras reglas y funcionan, pero esta no. Simplemente no se ejecuta la regla porque no encuentra el subdominio y ya da la página 404.
Una alternativa es utilizar la página genérica 404 configurada en Apache. Al buscar un subdominio que no existe en el servidor, se va a dirigir a la página 404, la cual tenemos que especificar que sea por ejemplo: 404.php. En este script tomamos la URL y extraemos el subdominio ingresado y en base a este nos redirijimos y ejecutamos lo que corresponda.
@Adrian: Lo que hace ese rewrite es enviar como valor del parámetro s al index.php todo aquello que esté antes del nombre del dominio que no coincida con las 3w’s, de todas formas si dices que nunca te entra en esa condición de rewrite es que deberías probar a poner este código el primer lugar y luego observar su fucnionamiento. Si el error es 404 es que tal vez no tengas un index.php en la raiz del proyecto.
Salu2.
Hola felizmente encontre este foro q sè q me ayudara, y esactamente es lo que dice el compañero kulent; tengo mis URLS que se generaan mediante un get, es decir si mi direccion es http://www.midominio.com/pagina.php?nomcliente=CLIENTE lo que deseo es http://www.CLIENTE.midominio.com, el codigo que uso es, pero nada :-(
RewriteCond %{REQUEST_URI} !^/pagina\.php
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(.+)\.midominio\.com
RewriteRule .* /pagina.php?nomcliente=%1 [L]
porfa ayudenmee…..
@Roberto: la regla de rewrite en:
RewriteCond %{HTTP_HOST} !^www\.
Es una condición que indica que no comience por www por lo que para que funcione tu ejemplo tendrás que utilizar otra expresión regular. Si utilizas esa regla la dirección sería:
http://CLIENTE.midominio.com
Probe el código pero no me funciona, con el www. o no adelante.
@Hernán: Tienes activado el módulo de rewrite? envías el parámetro que necesita tu aplicación recibir por get? cual es el error que te da? describeme más tu problema para que te pueda ayudar.
Hola amigos, tengo ya varias horas intentando configurar subdominios dinamicos en mi pagina y aun no lo logro. tengo el mod_rewrite activo pero igaul no funciona.
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(.+)\.mipagina\.com
RewriteRule .* /index.php?s=%1 [L]
tambien he intentado utilizando esta configuracion en mi .htaccess pero igual nada.
#Options +FollowSymLinks
#RewriteEngine On
#RewriteCond %{ENV:REDIRECT_STATUS} ^$
#RewriteCond %{HTTP_HOST} !^(www\.)?midominio\.com$ [NC]
#RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.midominio\.com$ [NC]
#RewriteRule ^link([^/]*)$ carlos.php [L]
#RewriteRule ^(.*)$ carlos/$1 [QSA,L]
alguien puede darme una manito. mi correo es carlos_arce@hotmail.com.