Desarrollo web

Cómo cambiar el document root con .htaccess en cPanel

El document root es la carpeta del servidor desde la que se sirven los archivos de tu sitio web cuando alguien visita tu dominio. Por defecto en los hosting de Nicalia es public_html. Cambiar el document root es útil cuando tienes una aplicación instalada en un subdirectorio (como public_html/app) y quieres que el dominio apunte directamente a ese subdirectorio sin mostrar la carpeta raíz.

Hay dos formas de hacerlo en cPanel: mediante una regla de redirección en el archivo .htaccess (sin tocar la configuración del servidor) o cambiando la carpeta raíz del dominio directamente desde la sección Dominios de cPanel.

Método 1 — Cambiar el document root mediante .htaccess

Este método redirige todo el tráfico del dominio hacia un subdirectorio mediante una regla de reescritura de Apache, sin modificar la configuración del servidor.

Paso 1 — Abrir el archivo .htaccess

Accede al Administrador de Archivos de cPanel y navega hasta la carpeta raíz de tu dominio (normalmente public_html). Localiza el archivo .htaccess y ábrelo para editar. Si no existe, créalo.

Administrador de Archivos de cPanel mostrando la carpeta public_html con el archivo .htaccess visible

ℹ️ El archivo .htaccess puede estar oculto. Si no lo ves, activa la visualización de archivos ocultos en Ajustes → Mostrar archivos ocultos del Administrador de Archivos.

Paso 2 — Añadir la regla de redirección

Añade el siguiente código en el archivo .htaccess:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteCond %{REQUEST_URI} !directorio/
RewriteRule (.*) /directorio/$1 [L]
Editor del archivo .htaccess en el Administrador de Archivos de cPanel con el código de redirección del document root hacia un subdirectorio

Paso 3 — Personalizar los valores

  • Sustituye example.com por tu nombre de dominio real (sin www en la primera condición, con www en la segunda).
  • Sustituye directorio por el nombre de la carpeta dentro de public_html a la que quieres apuntar el dominio.

Explicación de las directivas:

  • RewriteEngine on — activa el motor de reescritura de Apache.
  • RewriteCond %{HTTP_HOST} ^example.com$ — condición: aplica solo cuando el host es example.com (sin www).
  • RewriteCond %{HTTP_HOST} ^www.example.com$ — condición adicional: aplica también para www.example.com.
  • RewriteCond %{REQUEST_URI} !directorio/ — evita bucles de redirección comprobando que la URL no está ya en el subdirectorio.
  • RewriteRule (.*) /directorio/$1 [L] — redirige todas las peticiones al subdirectorio, manteniendo la ruta solicitada.

Paso 4 — Guardar los cambios

Guarda el archivo y ciérralo. La redirección surtirá efecto de forma inmediata — cualquier visita a tudominio.com se redirigirá a tudominio.com/directorio/ y se servirán los archivos de esa carpeta.

Método 2 — Cambiar el document root desde cPanel Dominios

cPanel permite cambiar directamente la carpeta raíz de un dominio addon o subdominio desde la sección de gestión de dominios. Este método es más limpio que el .htaccess porque modifica la configuración real del virtual host sin necesidad de reglas de reescritura.

  1. En cPanel ve a Dominios → Dominios.
  2. Localiza el dominio o subdominio cuyo document root quieres cambiar.
  3. Haz clic en «Administrar».
  4. En el campo «Raíz del documento», modifica la ruta para que apunte al subdirectorio deseado (ej: public_html/app).
  5. Guarda los cambios.

ℹ️ Este método solo está disponible para dominios addon y subdominios. El dominio principal de la cuenta cPanel tiene su document root fijado en public_html y no puede cambiarse directamente desde la interfaz — en ese caso usa el Método 1 con .htaccess.

Errores frecuentes al cambiar el document root

La redirección entra en bucle infinito (error «Too Many Redirects»)

Falta la condición RewriteCond %{REQUEST_URI} !directorio/ antes de la regla RewriteRule, o el nombre del directorio en esa condición no coincide exactamente con el del RewriteRule. Verifica que ambos usan exactamente el mismo nombre y que la barra final está presente en la condición de exclusión.

El dominio con www no redirige pero sin www sí

Comprueba que la segunda condición RewriteCond %{HTTP_HOST} ^www.example.com$ tiene la sintaxis correcta. La barra ^ al inicio y el $ al final son esenciales — sin ellos la expresión regular no coincide exactamente con el host.

La redirección funciona pero los recursos (CSS, imágenes) no cargan

Las rutas absolutas de los recursos de tu aplicación pueden estar basadas en / (raíz del dominio) en lugar del subdirectorio. Si los recursos tienen rutas como /assets/style.css, el navegador los buscará en tudominio.com/assets/style.css (la raíz), no en tudominio.com/directorio/assets/style.css. Deberás actualizar las rutas en tu aplicación o usar el Método 2 (cambiar el document root en cPanel Dominios).

El archivo .htaccess no aplica los cambios

En algunos servidores el módulo mod_rewrite puede no estar activo, o puede que haya otra directiva AllowOverride bloqueando el uso del .htaccess. En los servidores LiteSpeed de Nicalia, mod_rewrite equivalente está activo por defecto. Si los cambios no surten efecto, verifica que no hay otro .htaccess en el subdirectorio que anule las reglas.

Preguntas frecuentes sobre el document root

¿Qué es el document root y cuándo necesito cambiarlo?

El document root es la carpeta del servidor desde la que se sirven los archivos cuando se visita el dominio. Necesitas cambiarlo cuando tu aplicación está en un subdirectorio (ej: public_html/app) y quieres que el dominio raíz apunte a ella directamente, sin que la URL muestre el nombre del subdirectorio en la barra de direcciones.

¿Cuál es el document root por defecto en Nicalia?

Para el dominio principal de la cuenta cPanel es public_html. Para dominios addon y subdominios, cPanel crea automáticamente una carpeta dentro de public_html con el nombre del dominio o subdominio, que es su document root por defecto.

¿Puedo cambiar el document root del dominio principal de cPanel?

No directamente desde la interfaz de cPanel — la raíz del dominio principal siempre apunta a public_html. La forma de redirigir el tráfico a un subdirectorio es mediante el Método 1 (regla RewriteRule en el .htaccess), que no cambia el document root real pero redirige todas las peticiones al subdirectorio.

¿La regla .htaccess afecta a las URLs — los visitantes verán el subdirectorio en la barra de direcciones?

No si usas la regla RewriteRule incluida en esta guía. La reescritura se hace internamente en el servidor — el navegador del visitante sigue viendo tudominio.com en la barra de direcciones, aunque el servidor esté sirviendo los archivos desde public_html/directorio/.

¿Qué diferencia hay entre cambiar el document root y crear un subdominio?

Son soluciones distintas. Cambiar el document root del dominio principal hace que tudominio.com sirva desde un subdirectorio diferente. Crear un subdominio (app.tudominio.com) crea una URL diferente que puede apuntar a cualquier carpeta. Si quieres mantener la misma URL del dominio principal, cambia el document root. Si puedes usar una URL diferente, crea un subdominio.