10ago/0726
Subdominios dinámicos en apache con rewrite
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.
¿Te gustó este artículo?
Comentarios (26) Trackbacks (0) ( suscribirse a los comentarios de esta entrada )
Aún no hay trackbacks.
10 agosto, 2007 - 18:47
Esto…y luego preguntas: ¿Quien controla de rewrite?
10 agosto, 2007 - 19:57
Bueno, a base de documentación aprende uno ^_^ y de usar el tito google
19 octubre, 2007 - 01:08
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?
19 octubre, 2007 - 21:51
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 ^_^
22 agosto, 2008 - 04:18
uhmmm y me podrian decir donde inserto este codigo??:S
22 agosto, 2008 - 22:05
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.
30 agosto, 2008 - 04:27
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.
31 agosto, 2008 - 13:04
Bien, en cuanto tenga un momento redacto un post dedicado al .htaccess
1 septiembre, 2008 - 06:29
ola gracias por la respues pero me podrias decir donde ubico la raiz de un dominio en la carpeta www en el ftp???
19 septiembre, 2008 - 20:09
hola que tal?, tengo el cpanel pero no encuentro donde entrar a la configuración de apache para escribir el rewrite, podrian ayudarme?
5 diciembre, 2008 - 18:08
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.
5 diciembre, 2008 - 18:11
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.
5 diciembre, 2008 - 20:06
@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.
9 agosto, 2009 - 03:07
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…..
21 agosto, 2009 - 20:09
@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
28 agosto, 2009 - 01:23
Probe el código pero no me funciona, con el www. o no adelante.
28 agosto, 2009 - 09:50
@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.
17 septiembre, 2009 - 07:35
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.
17 octubre, 2010 - 02:49
hola mi estimado carlitos
el codigo htaccess esta bien escrito yo utilizo este en mi rewrite
RewriteCond %{REQUEST_URI} !^/perfil.php
RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} ^(.+).domain.com
RewriteRule (.*) /perfil.php?u=%1 [L]
el cual simula un subdominio
jpmaster.dominio.com
dominio.com/perfil.php?u=jpmaster
el codigo al parecer esta bien el problema es tu servidor consulta con tù proveedor de hosting si tienes actiado los subdominios si tienes un hosting que no tiene subdominios es en vano que pienses que te va a funcionar
por que hace tiempo tenia el mismo problema pero me di con la sorpresa que el hosting que habia contratado no tenia subdominios
bueno sin tanta palabreria esta es la demostracion pa que vean que no miento
http://jpmaster.tujuerga.com
21 diciembre, 2010 - 05:27
Hola, esto me funcionaria para WordPress en su estructura estandar que vienei:
http://dominio.com/?p=123 …
Quisiera saliera asi: http://123.dominio.com/
Muchas gracias por la ayuda.
26 diciembre, 2010 - 21:33
Hola
¿El .htaccess funciona con el servidor HTML-kit? ¿o sólo funciona con el servidor Apache?
Saludos. gracias.
4 marzo, 2011 - 18:48
¿Si fuera en un directorio? Me refiero a que si tengo páginas tal que
http://www.dominio.es/subdir1/
http://www.dominio.es/subdir2/
http://www.dominio.es/subdir3/
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} ^(.+).dominio.com
RewriteRule .* /index.php/%1 [L]
??
Vamos, que si puedo redireccionar a un directorio. Si se pudiera me salto toda la jo@i#a plataforma de plesk.
Gracias
4 marzo, 2011 - 18:51
Se me olvidaba, luego cada directorio tiene un .htaccess con un rewrite independiente. Una vez que está redireccionado del primero se va al segundo de forma independiente?
5 agosto, 2011 - 07:06
Señores lo conseguí, antes de poner el .htaccess tienen que ir a su cpanel, y en subdominios crean un subdominio así: “*.midominio.com”
Listo!
Con eso ya el apache reconocerá todo ;D
Saludos ;D
29 diciembre, 2011 - 21:15
A mi no me funciona…Algien me puede ayudar?
Tengo mod_rewrite y todo y nada…:(
DocumentRoot /var/domains/midominio.com
ServerName midominio.com
ServerAlias *.midominio.com
allow from all
Options -Indexes
HostNameLookups on
UseCanonicalName off
#RewriteEngine On
#RewriteCond %{HTTPS} off
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{HTTPS_HOST} !^www.
RewriteCond %{HTTPS_HOST} ^(.+).midominio.com
RewriteRule .* /index.php?s=%1 [L]
Ayuda please…
3 enero, 2012 - 13:39
No sólo la configuración del virtual host, en la configuración de dns’s tiene que aceptar *.midominio.com ¿has comprobado eso?