Avisos
Vaciar todo

Error de Servidor al navegar en otro idioma

2 Respuestas
2 Usuarios
0 Reactions
5 Visitas
Respuestas: 1
New Member
Topic starter
 

Hola, estoy terminando la traducción de mi web al francés utilizando WPML. La traducción está completa y el idioma francés funciona correctamente dentro de WordPress y también cuando accedo mediante parámetro: https://orycs.com?lang=fr

Sin embargo, cuando intento acceder al francés mediante directorio, que es el modo normal de WPML y el que quiero ( https://orycs.com/fr/) la web falla y da 500 Internal Server Error.

 

Cada vez que WordPress regenera las reglas de enlaces permanentes, el archivo .htaccess vuelve a incluir automáticamente estas dos líneas:

Código:
RewriteRule ^fr/wp-login.php /wp-login.php [QSA,L]
RewriteRule ^es/wp-login.php /wp-login.php [QSA,L]

 

Estas reglas:

  • No provienen de WPML

  • No provienen de WordPress

  • No provienen de ningún plugin activo o desactivado

  • No están en ningún archivo dentro de public_html

  • Vuelven incluso si borro el .htaccess y lo regenero

  • Vuelven incluso con un .htaccess limpio

  • No desaparecen aunque añada filtros en functions.php para eliminarlas

Es decir: no vienen de WordPress.

 

¿Cómo puedo solucionarlo?

Gracias, un saludo

Contenido solo visible a usuarios registrados


 
Respondido : 07/01/2026 1:16 pm
Tags del tema
Pepe
 Pepe
Respuestas: 41594
Illustrious Member Admin
 

Hola Damià

Lo estoy probando y veo que carga bien:

chrome capture 2026 01 07

El error que comentas es frecuente con WPML, este plugin añade reglas de reescritura para redirigir accesos.

Este error puede venir del propio WPML o algún plugin que entre en conflicto.

 

Antes de ponernos a mirar más, prueba lo siguiente:

.- Actualiza todo lo que tienes pendiente, plugins y plantillas

.- Accede a Fragmentos de código - Añadir nuevo

.-Añade un título para tenerlo identificado y añade lo siguiente:

add_filter('mod_rewrite_rules', 'fix_wpml_rewrite_rules');
function fix_wpml_rewrite_rules($rules) {
$home_root = parse_url(home_url());
$home_root = isset($home_root['path']) ? trailingslashit($home_root['path']) : '/';

$wpml_root = parse_url(site_url());
$wpml_root = isset($wpml_root['path']) ? trailingslashit($wpml_root['path']) : '/';

$rules = str_replace($home_root, $wpml_root, $rules);
return $rules;
}

 

Regenera los enlaces permanentes y lo revisas.

 

Un saludo

 


 
Respondido : 07/01/2026 2:26 pm