Configuracion para subdominios (Apache)

EnZo

Ya se usar el mod_rewrite, pero lo que no he logrado es configurar el apache para que permita subdominios dinamicamente.

Algo como: http://www.miweb.com/usuario.php?u=user
pasar a: http://user.miweb.com/

No basta con modificar el .htaccess porque nada mas que probando en mozilla me dice que 'No pudo encontrarse...'
He leido que hay que activar el virtual host, y hacer no se que de las dns del dominio, pero ni idea.

Vengo aqui para ver si alguien hizo esto alguna vez en plan experimento, o sabe almenos como se configura.

Thank

IS4kO

Tenes que definir un VirtualHost para cada direccion (o nombre) que quieras
servir, en tu caso, seria asi:


<VirtualHost *>
DocumentRoot /var/www/htdocs/loco
ServerName www.loco.no-ip.info
</VirtualHost>

<VirtualHost *>
DocumentRoot /var/www/htdocs/lokoko
ServerName www.lokoko.no-ip.info
</VirtualHost>


Y asi pones una seccion VirtualHost por cada nombre que quieras servir.
En cada VirtualHost podes agregar opciones para loguear en diferentes
archivos, donde estan los cgi ejecutables, etc.

Extraido de un articulo de Gabriel E. Patiño

EnZo

Pero eso no puede ser, debe de ser dinamico. O todo el mundo que tiene esto va modificando el http.conf cada vez que se registre un usuario?

Yo tengo esto en el .htaccess

RewriteEngine On
#Si la direccion no es www
RewriteCond %{HTTP_HOST}!www [NC]
#Extraer subdominio
RewriteCond %{HTTP_HOST} [.]+.miweb.com [NC]
#Y entrar en la direccion
RewriteRule $ /usuario.php?u=%1 [L]

Pero claro si no le digo al http.conf que me resuelva cualquier subdominio, me da error.

deberia de ser una cosa asi

<VirtualHost 192.168.1.1>
DocumentRoot /var/www/htdocs/
ServerName *.miweb.com
</VirtualHost>

pero no se si va porque no he podido acceder al http.conf todabia

EnZo

Yo si puedo, en vez de poner el archivo de la misma web pongo la url de media-vida y redirecciona seria lo mismo no crees?

IS4kO

Enzo aer si me aclaro quieres crear un subdominio para los usuarios que se vallan dando de alta?, si es así creo que tendras que meterte a fondo con perl que creo que es el que se utiliza para esos casos.

Para hacerlo de forma estática, como quería erdanblo, mirate esta web, te lo explican detalladamente:

http://www.assl-site.net/docs/docs/Apache_con_VH.txt

NOTA A LOS MODERADORES: Se podria añadir este link al apartado de recursos, aunque no es muy usual que usuarios no muy avanzados se metan a configurar y personalizar su servidor, nunca está demás saber como poder hacerlo.

erdanblo

IS4K0 TKM xDDD

Perdón, es que el post, lo fuí a editar que lo tenia mal y lo borré, decia así más o menos:

Como configurar un subdominio es un hosting compartido pero que en vez de reedireccionar a otra web o directorio, lo hiciese a una IP, por ejemplo para conectar a una máquina y cosas así ^. Tipo: servidorcs.dominio.com:27005 y entrasé en mi servidor de Counter Strike.

edit. Me lei eso IS4k0 xD, pero eso pa mi que no es, habla de subdominios, pero creandolos en "x" directorio, yo quiero que reedireccione a una IP, como en el caso del servidor de CS.

IS4kO

Erdanblo, capullote, leete el texto de la URL

--> Ahora podemos entender que hayan varias páginas web alojadas en un mismo servidor con una misma IP. Solo debemos crear
un VirtualHost por cada dominio o subdominio que queramos alojar.


Lo del subdominio no es mas que, por ejemplo si el propietario de un dominio quiere hacer una subseccion de ese
dominio, puede hacer algo así:


http://fake.fakedomain.net


donde vemos que 'fake' es un nombre que se le da al subdominio, y 'fakedomain.net' es eldominio en si. De ese modo, si
por ejemplo una compañía está estructurada en varias secciones, podría esquematizar su web del siguiente modo:


http://www.empresa.com


http://ventas.empresa.com


http://personal.empresa.com

Si lo que quieres no es eso, perdona, es que sigo sin entender el problem :S

EDIT: Si quieres una simple redirección, hay dos formas principales para redireccionar todas las peticiones de un servidor entero a una dirección única: una requiere el uso de mod_rewrite y la otra el uso de un script CGI.

Primero: si todo lo que necestitas hacer es migrar el servidor de un nombre a otro, simplemente, puedes usar la directiva Redirect, facilitada por mod_alias:

Redirect / http://www.apache.org/
Como Redirect remitirá a la ruta completa puede, sin embargo, no ser apropiado, por ejemplo, cuando la estructura del directorio ha cambiado después de moverlo y, simplemente, quieres dirigir a la gente a la página de inicio.

La mejor opción es usar el módulo estándar de Apache mod_rewrite. Si el módulo está compilado, las líneas siguientes

RewriteEngine On RewriteRule / .* http://www.apache.org/ [R]
mandarán un HTTP 302 Redirect contra el cliente y, sea la que sea lo que dieron en la URL original, enviarán a "e;http://www.apache.org/"e;.

La segunda opción es instalar un ScriptAlias señalando a un script CGI que genere el estado 301 ó 302 y la localización de otro servidor.

Usando un script CGI puedes interceptar varias peticiones y tratarlas de una forma diferenciada, por ejemplo puedes desear interceptar una petición POST, de manera que el cliente no se redirija a un script en otro servidor que espera la información del método POST (un redireccionamiento perdería esta información del método POST). Podrías, también, usar un script CGI si no quieres compilar el módulo mod_rewrite en tu servidor.

Esta es la manera de redirigir todas las peticiones a un script en el archivo de configuración del servidor:

ScriptAlias / /usr/local/httpd/cgi-bin/redirect_script/
y este es un sencillo script en Perl para redirigir las peticiones:
#!/usr/local/bin/perl

print "Status: 302 Moved Temporarily\r\n" .
Location: http://www.some.where.else.com/\r\n" .
"\r\n";

erdanblo

"varias páginas web alojadas en un mismo servidor con una misma IP"

Tu mismo lo has dicho, o yo no lo entiendo o eso no es XD, te estoy diciendo que habla de "varias páginas webs en el mismo servidor con la misma IP".

Yo eso no quiero, ya te he dicho, el ejemplo (creo que se entiende) y aunque me dijistes que no era posible o algo ayer, posible tiene que serlo porque yo lo he visto.

Ejemplo de nuevo:

  • IP del servidor de counter-strike (212.4.96.157)
  • Puerto del servidor de counter-strike (27015)

Y quiero crear un subdominio en mi dominio para jugar sin saberme la IP porque soy muy despistado y vago para mirarla cada vez que quiera jugar, es decir:

miservidor.dominio.com:27015

Con poner eso en el juego, deberia conectar.

EnZo

IS4K0, no creo que haya que programar en perl para hacer lo que quiero. Con mod_rewrite ya tengo el codigo necesario para redireccionar. Mi problema es que no se configurar el http.conf de manera que me resuelva cualquier URL

usas mozilla? abre estas 2 urls:
http://piticlin.media-vida.net/
http://piticlin.deviantart.com/

En la de MV si usas mozilla te saldra un mensaje de error.
Ambos son subdominios inventados, la diferencia es que uno esta preparado para resolver cualquier subdominio, y media-vida no.

IS4kO

erdanblo

1º Tienes el dominio erdanblo.net
2º Ya has creado el subdominio cs.erdanblo.net desde el enlace de Subdominios de tu cpanel
3º Una vez creado vuelves a entrar en los subdominios de tu cpanel y seleccionas cs.erdanblo.net
4º Pinchas sobre SETUP REDIRECTION
5º Metes la ip del server junto con el puerto 666.666.666:069
6º Ya tienes creado un subdominio que al entrar te irá directamente a la ip 666.666.666:069

Me he instalado un cpanel para mirartelo y funciona correctamente.

ejemplo: isako.musicametal.com te redirecciona a la ip de as.com

Espero que sea esto por fin :)

Enzo En cuanto a creación dinámica ni idea tio :__(

guner

usa expresiones regulares
http://httpd.apache.org/docs/misc/rewriteguide.html


mira así:

RewriteEngine On
RewriteCond %{HTTP_HOST} [www]+.$ [NC]
RewriteRule [www]+.$ /usuario.php?u=$1 [L]

EnZo

Ya eso para el .htaccess, es lo que he puesto en #3

pero de que sirve eso si no resuelve la url, osea que da error.

PD: Ese codigo no te valdria

dre

y si el puerto de tu server es 27015 no hace falta que lo pongas. (xD no doy pa más, aporto lo poquito que se x|)

2 meses después
SeiYa_Banned

Al final el post murio y no le han resuelto la duda, con lo interesante que me parece.

EnZo

lo consegui :) buscando y calentandome la cabeza
luego cndo este en casa lo miro y te digo como es exactamente si te interesa

SeiYa_Banned

Gracias, la verdad es que me interesa para un proyectito :D

Un saludo.

Y

Bah! tampoco hay que dramatizar tanto, un poco de php y punto.

Cuando carga una web siempre lo primero a cargar va a ser tu dominio. Si pones www.pepito.com es lo mismo que pepito.com.
Entonces, por esa regla de tres va a cargar siempre el index de tu web. Bien, que pasa si le pones un subdominio? nada, en el index.php de tu web en la cabecera le pones una sentencia que lea la url que se ha utilizado, y si antes del primer punto hay algo distinto de www o nada, haga un include al usuario en cuestión.

Por ejemplo:

yohnah.pepito.com

el index leeria que antes del primer punto está yohnah, comprueba si existe y luego hace un include al index del directorio yohnah. Así tan facil lo puedes hacer.
Si quieres hacer un header locate también puedes, pero no te mantendría la misma url

willsmith

tb se puede hacer mediante un form que sobreescriba el httpd.conf para crear los alias

EnZo

"un poco de php y punto.
Cuando carga una web siempre lo primero a cargar va a ser tu dominio. Si pones www.pepito.com es lo mismo que pepito.com.
Entonces, por esa regla de tres va a cargar siempre el index de tu web."

http://google.es/ < -- resuelve
http://yohhan.google.es/ <-- No resuelve

Con lo cual ya no te valdria de nada todo lo que dices, porque no se aplica tu regla de tres.

En el caso de que consiguieses que resuelva, si luego recoges el subdominio con php dices que haga un include mostrando al usuario, pero si yo no quiero que lo muestre en el index que? ademas de que es un poco cutre pasarle al include una variable con el nick del usuario.

#19 yo desde php no tengo acceso al http.conf y ademas el http.conf no lleva solo un par de lineas si no unos 20 o 30 kb de configuracion

SeiYa_Banned

EnZo se te olvido comentarme como lo hiciste/conseguiste XD

Usuarios habituales