Redirección realizada desde cPanel no funciona

Cuando se configura una redirección desde cPanel este añade unas reglas al fichero .htaccess que se encargan de que sea funcional, estas reglas por defecto son añadidas al final de dicho fichero.

Si en este fichero además existen reglas como las creadas por aplicaciones como WordPress o Joomla, estas entrarán en conflicto con las que existan después de dichas reglas, como pueden ser las redirecciones.

La solución pasaría por mover las reglas destinadas a efectuar la redirección al inicio del fichero.

Por ejemplo, tenemos una instalación de WordPress, y hemos creado unas reglas para forzar el uso de https, el .htaccess queda de la siguiente forma:

# 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 %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Es probable que no funcionen al tomar preferencia las de WordPress, por lo que las movemos arriba.

RewriteEngine On
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# 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

Importante, como puedes ver, hemos añadido RewriteEngine On al inicio, si el bloque que vamos a mover no lo contiene, debemos añadir esta línea, siempre como la primera, para que las reglas definidas a continuación funcionen.