Solucionar problemas
Redirección realizada desde cPanel no funciona
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
- Diagnóstico avanzado de los registros de un dominio Comprueba la delegación, consulta cada servidor DNS autoritativo y contrasta después registros y ser...
- El dominio muestra otra web, contenido incorrecto o redirecciona a otro dominio Localiza por qué un dominio abre otra web revisando DNS, raíz de documentos, redirecciones, URL de l...
- 500 Internal Server Error Diagnostica un error 500 desde la petición y el registro del mismo instante antes de revisar PHP, .h...
- Activar temporalmente el modo depuración de PrestaShop Obtén la excepción exacta activando temporalmente _PS_MODE_DEV_ desde el panel o defines.inc.php sin...
¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.