Documentación / .htaccess — los dos modos, y cuál quieres

.htaccess — los dos modos, y cuál quieres

Si agregaste algo a .htaccess y el sitio se comporta como si no lo hubieras hecho, lee esto primero. Nada está roto: tu sitio probablemente está en el modo que traduce .htaccess en lugar de leerlo, y la traducción cubre las reglas comunes, no todas.

Abre Domains → Apache / .htaccess. La insignia en la parte superior de la ficha indica en qué modo está este sitio.

Los dos modos

Traducido (el predeterminado). Tu .htaccess se convierte en las reglas propias del servidor web rápido. Las directivas comunes funcionan. Cualquier cosa que el conversor no pueda reproducir se omite, y se te enumera en la tabla debajo de la ficha. Un cambio en el archivo surte efecto solo después de que pulses Translate now: el archivo no se lee en cada solicitud.

.htaccess completo. Tu archivo se lee directamente, exactamente como estaba en cPanel. Cada directiva que Apache admite funciona, y un cambio surte efecto en la siguiente solicitud. Ligeramente más lento que el modo traducido, porque cada solicitud pasa por un paso extra.

Cuál quieres

Quédate en Traducido si tu .htaccess es un bloque de permalinks de WordPress, una redirección de forzar HTTPS, una redirección www/no-www, una línea Redirect, un interruptor de listado de directorio o protección basic-auth. Eso es la mayoría de los sitios, y esta es la ruta más rápida.

Activa .htaccess completo si:

  • la tabla bajo la ficha enumera directivas que realmente necesitas,
  • configuras valores de PHP desde .htaccess (php_value, php_flag): estos nunca se aplican en modo traducido, diga lo que diga el archivo,
  • usas SetEnv, SetEnvIf, RequestHeader, AddType, AddHandler, o reglas de reescritura con condiciones sobre las que el conversor advierte,
  • o estás trayendo un sitio desde otro sitio y prefieres no auditar su .htaccess en absoluto.

No hay penalización por elegir el soporte completo, más allá de una pequeña cantidad de latencia. No hay coste, ni paso extra después, ni configuración.

Leer la tabla

Bajo la ficha de modo, cada fila es una directiva que el conversor no pudo reproducir, con su número de línea y qué hacer al respecto.

  • En modo Traducido, la nota encima del botón indica cuántas de esas se están ignorando ahora mismo. Esas reglas no se están ejecutando.
  • En modo .htaccess completo, aparece la misma lista, pero la nota dice que están funcionando: la lista solo importa si alguna vez vuelves atrás.

Si la tabla está vacía, nada de tu .htaccess se está perdiendo, y el modo traducido está haciendo todo lo que el archivo pide.

Cambiar

Un botón. En modo traducido dice Turn on full .htaccess support; en modo completo dice Switch to translated (faster).

  • Lleva unos segundos. La ficha dice Applying — this can take a few seconds… mientras trabaja.
  • Tu sitio no se cae. La nueva ruta se pone en su lugar antes de que la antigua se retire, en ambos sentidos, y si alguna parte falla ambos lados se restauran como estaban.
  • Nada más de la cuenta cambia. Tus archivos, tu document root, tu versión de PHP, tu certificado y todo tu HTTPS permanecen exactamente como están. El PHP de tu sitio sigue ejecutándose como tu propio usuario, aislado de cada otra cuenta del servidor, en ambos modos.
  • Las direcciones de los visitantes en tu access log siguen siendo las direcciones reales de los visitantes.
  • Puedes volver atrás en cualquier momento, tantas veces como quieras.

Vienes de cPanel

No tienes que hacer nada. Cuando una cuenta se importa desde una copia de seguridad de cPanel, el importador traduce los archivos .htaccess que encuentra, y si alguna directiva no puede traducirse, la cuenta se pone en modo .htaccess completo de inmediato. El sitio se comporta como lo hacía en el servidor antiguo desde la primera solicitud.

El informe de importación lo muestra como dos líneas: cuántas reglas se tradujeron y cuántas necesitan revisión, y luego si se cambió el modo.

Los sitios que nunca necesitaron nada inusual permanecen en la ruta traducida, más rápida.

Cuando algo parece ir mal

Una regla sigue sin hacer nada después de que editaste el archivo, y estás en modo traducido. Pulsa Translate now. En este modo el archivo se lee cuando lo pides, no en cada solicitud.

Cada página responde HTTP 500 justo después de que activas el soporte completo. Vuelve atrás —el botón te deja donde estabas— y dile a tu proveedor de hosting qué ocurrió. Esto significa que a Apache en ese servidor le falta un módulo que tu archivo necesita (RewriteEngine On es el habitual). Es un ajuste del lado del servidor, no algo que puedas arreglar desde tu cuenta.

Cada página responde 502 y estás en modo completo. El proceso de Apache en el servidor no se está ejecutando. Los sitios en modo traducido no se ven afectados, lo cual es una cosa útil que decirle a tu proveedor.

El cambio se rechaza con un mensaje sobre puertos de Apache. El servidor se ha quedado sin los huecos que asigna para este modo. Solo tu proveedor puede aumentarlos.

La ficha Apache / .htaccess no está en tu panel en absoluto. O bien tu plan de hosting no la incluye, o el servidor no se configuró con Apache disponible. Pregunta a tu proveedor cuál.

Qué no cambia el modo completo

  • Tu certificado. HTTPS se termina antes de que Apache vea siquiera la solicitud, así que la emisión y la renovación quedan intactas.
  • El aislamiento. PHP se ejecuta como el propio usuario de tu cuenta en ambos modos.
  • Tus cifras de ancho de banda y las estadísticas de visitantes.
  • Cualquier otra cuenta del servidor. Este ajuste es solo tuyo: se decide por cuenta, no por servidor.