Solucionar problemas

Redirección realizada desde cPanel no funciona

Revisado el 3 min de lectura dominios redirecciones

cPanel guarda las redirecciones mediante reglas en .htaccess. Si quedan después de un bloque que ya procesa la petición, algunas rutas pueden no llegar a ejecutarlas. Comprueba el archivo generado antes de cambiar el orden.

La existencia de reglas de WordPress o Joomla no demuestra un conflicto. Primero prueba la URL con curl -I, comprueba el código y la cabecera Location, verifica la entrada en Current Redirects y abre el .htaccess del DocumentRoot correcto.

Si la respuesta y el orden muestran que un bloque de la aplicación consume la petición antes de llegar a la redirección, mueve solo la regla afectada para que quede antes de ese bloque. Conserva una copia y respeta los bloques gestionados por WordPress, LiteSpeed, plugins y seguridad.

Por ejemplo, una redirección colocada después del bloque de WordPress puede no ejecutarse para rutas que ese bloque envía a index.php:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

RewriteCond %{HTTP_HOST} ^antiguo\.ejemplo(?::[0-9]+)?$ [NC]
RewriteCond %{THE_REQUEST} \s/+([^?\s]*)
RewriteRule ^ https://nuevo.ejemplo/%1 [R=301,L,NE]

Si has confirmado esa interceptación, coloca la redirección fuera del bloque gestionado y antes de él:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^antiguo\.ejemplo(?::[0-9]+)?$ [NC]
RewriteCond %{THE_REQUEST} \s/+([^?\s]*)
RewriteRule ^ https://nuevo.ejemplo/%1 [R=301,L,NE]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

RewriteEngine On debe aparecer en ese contexto antes de las reglas que lo necesiten, pero no tiene que ser literalmente la primera línea del archivo. Para forzar HTTPS, utiliza preferentemente cPanel > Dominios > Force HTTPS Redirect en lugar de crear una redirección manual.

Los dominios del ejemplo son marcadores: sustituye origen y destino por los tuyos. La condición de host limita la regla al dominio antiguo; la ruta tomada de la petición original conserva sus caracteres codificados y se mantiene la cadena de consulta. No añadas NE a otras reglas sin revisar cómo construyen el destino.

Prueba la portada, una ruta interna, una con tildes o caracteres codificados y otra con parámetros. Comprueba también que el dominio nuevo no entra en un bucle. Antes de fijar el cambio como 301 permanente puedes usar 302 en una prueba controlada; después confirma la respuesta sin depender de una redirección guardada por el navegador. Si curl -I da un resultado distinto del navegador, compara una petición GET: no todas las aplicaciones responden igual a HEAD.

También te puede ayudar

¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.