entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Dudas htaccess, cname y dominios parkeados

Hola, tengo un servidor dedicado con varios dominios parkeados, tengo un directorio de carpetas y cada una contiene archivos de sitios web diferentes con la estructura "public_html/paginas/usuario" y actualmente cuando alguien compra un dominio le hospedo su página editando el archivo .htaccess y agregando el siguiente código:

RewriteCond% {HTTP_HOST} ^ minuevodominio\.com $ [NC]
RewriteCond% {DOCUMENT_ROOT} /paginas/usuario/% {REQUEST_URI} /-d
RewriteRule [^ /] $% {REQUEST_URI}/ [R = 301, L] 
RewriteCond% {ENV: REDIRECT_STATUS} ^ $
RewriteCond% {HTTP_HOST} ^ minuevodominio\.com $ [NC]
RewriteRule ^ (. *) $ /paginas/usuario/$ 1 [QSA, L] 

Lo que necesito es conservar la url en el navegador del tipo mipaginaweb.com/seccion/articulo/123 que sería originalmente servidordedicado.com/paginas/usuario/seccion/articulo/123 al navegar por todo el sitio, lo cuál hace ese código de arriba.

El problema es que ahora tengo muchos dominios parkeados y el archivo .htaccess se hace cada vez más grande. No estoy utilizando subdominios como para crear un registro CNAME desde el dominio nuevo sin tener qué tocar el htaccess.

Mi pregunta es que si se puede hacer algo similar al CNAME, para que a la hora de comprar un nuevo dominio y parkearlo en mi servidor ya no tenga que modificarse el archivo .htaccess sino que se haga desde el dominio. He leído un poco sobre modificar el archivo /etc/apacheX/sites-available/ en Linux, pero como no tengo acceso a esos archivos aun no entiendo muy bien cómo funciona.

¿Alguna idea? ¿El tamaño del archivo .htaccess afecta la velocidad de carga de la página?
En caso de que no se pudiera hacer esto que necesito, ¿cómo se pueden crear subdominios automáticos desde php? Mis usuarios pueden cambiar de nombre de usuario en el momento que decidan, ¿qué tan lioso sería modificar el nombre de un subdominio con php?

Gracias por su respuestas.

3 Respuestas

1voto

Leonardo-Tadei Puntos227010

Lo que deberías hacer en lugar de usar .htacces y reglas de reescritura, es montar Virtual Host con Apache.
Esto te funcionaría tanto para los dominios parqueados como para los que compran tus clientes.
Para definir un VirtualHost en Apache2 debes tener en la configuración general estas directivas:

Listen 80
NameVirtualHost *:80

y luego definir archivos en /etc/apache2/sites-available como este ejemplo para cada dominio:

<VirtualHost *:80>
 ServerAdmin [email protected]
 DocumentRoot "/home/paginas/usuario"
 ServerName minuevodominio.com
 ServerAlias www.minuevodominio.com
 ErrorLog "logs/minuevodominio.com-error_log"
 CustomLog "logs/minuevodiminio.com-access_log" common
 </VirtualHost>

Para habilitar el dominio, tenés que hacer un link simbólico de este archivo al directorio /etc/apache2/sites-enabled y recargar la configuración de Apache2

El contenido que se verá será el del directorio que indiques en el DocumentRoot, y apache responderá con este contenido cuando se quiera acceder al dominio indicado en ServerAlias.

Entonces si querés que más de un dominio tenga el mismo contenido, usas el mismo DocumentRoot. Si además le das acceso FTP a tus clientes, al usuairo FTP le pones como directorio home el mismo del DocumentRoot.

Se peude hacer algo así también vía PHP, pero no te lo recomiendo (en tal caso postea una pregunta sobre ese tema puntual y lo discutimos)

Saludos

0voto

k999 comentado

Vaya, eso aclara bastante mi panorama

2votos

lucianolagassa Puntos820

hola, por lo que veo ya tene el modulo userdir de apache en marcha, este te permite tener un webhost en cada user del sistema en la carpeta /home/USUARIO/public_html, ademas esto te permite que cada user no pueda escalar, y si le creas los virtualhosts de apache tenes todo en marcha. paso el codigo para poner en marcha un vhost y el ftp para que cada user este en su dir y este sea webhost.

Activar userdir para apache

a2enmod userdir
sudo /etc/init.d/apache2 restart

Activar userdir para proftpd

echo "DefaultRoot ~" >> /etc/proftpd/proftpd.conf
sudo /etc/init.d/proftpd restart

Codigo de VirtualHost para apache

<VirtualHost *:80>
 ServerAdmin [email protected]
 ServerName www.TUDOMINIO.com.ar
 ServerAlias *.TUDOMINIO.com.ar
 DocumentRoot /home/USER/public_html
 ErrorLog /home/USER/error.log
 TransferLog /home/USER/access.log
</VirtualHost>

este codigo lo usas en el archivo que se crear en el siguiente paso

Crear y Activar VirtualHost para apache

sudo adduser USUER
sudo nano /etc/apache2/sites-available/TUWEB
sudo a2ensite TUWEB
sudo /etc/init.d/apache2 restart

-1voto

pttmix Puntos130

Estimado su tiene un servidor dedicado y su negocio esta creciendo, lo mas profesional seria que adquiera una licencia de cpanel para la administración centralizada de su servidor y así dar la opción de dns propios, servidor de correos y todo lo que tiene un servidor de hosting profesional, a lo menos eso es lo que yo hago con mis clientes, cuando aparte del desarrollo requieren hospedaje.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta