Si WPML no le permite elegir directorios de idiomas (por ejemplo, http://example.com/es/ para el español), es porque intentó acceder a esa URL y obtuvo un error. A continuación, le indicamos lo que puede comprobar para asegurarse de que los directorios de idiomas funcionen.
Esto es lo que necesita configurar para que los directorios de idiomas funcionen:
- Habilitar la reescritura de URL.
- Permitir que WordPress tenga acceso de lectura y escritura a las carpetas.
- Asegurarse de que su sitio utilice una estructura de enlaces permanentes «bonita».
Como puede ver, no es necesario crear directorios físicos en el servidor. La opción de tener idiomas en directorios es posible mediante la reescritura de la URL.
Cómo determina WPML si puede activar los idiomas en directorios
WPML intenta acceder a una llamada de prueba que comprueba si los idiomas en directorios funcionarán. Esta llamada de prueba es:
yourdomain/LANGUAGE/?____icl_validate_domain=1
Por ejemplo, para comprobar si el español está activado en nuestro propio dominio (wpml.org), iríamos a la siguiente URL en nuestro navegador:
http://wpml.org/es/?____icl_validate_domain=1
Al hacer esto, obtendrá una página que parece estar en blanco. Haga clic derecho en la página y seleccione Ver código fuente de la página. Debería ver el siguiente contenido:
<!--http://wpml.org-->
Esto le indica a WPML que WordPress permite acceder a esta estructura de URL. Si la llamada se realiza correctamente, WPML permitirá usar idiomas por directorios. De lo contrario, recibirá un mensaje que explica (más o menos) cuál es el problema.
Si WPML ve una página de error, deshabilita esta función y muestra ese mensaje de error rojo, con posibles explicaciones de por qué está deshabilitada.
Importante: WPML accede a la URL de validación realizando una llamada fopen a la misma. Normalmente, es similar a lo que hacen los navegadores, pero no es lo mismo. Asegúrese de que fopen esté activado en su servidor. Puede añadir lo siguiente a su archivo de configuración de PHP para asegurarse de que no esté bloqueado:
SecFilterEngine Off
Asegúrese de que WordPress habilite la reescritura de URL
Para habilitar la reescritura de URL, WordPress crea un archivo llamado .htaccess en la carpeta donde está instalado. WordPress crea este archivo si utiliza cualquier otra cosa que no sean las URL predeterminadas. Ese archivo debe contener lo siguiente:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPressSi no existe, intente crearlo. Si existe pero está vacío, copie este contenido y guárdelo.
¿Qué significa poder reescribir las URL?
La reescritura de URL es un mecanismo complejo, utilizado de forma intensiva por WordPress. Para que esto funcione, el servidor web (normalmente, Apache) debe poder reescribir las URL, y se le debe permitir a WordPress gestionar la lógica de reescritura.
En Apache, mod-rewrite realiza la reescritura de URL. Es un módulo bastante estándar que está activado de forma predeterminada. Si utiliza Apache y no puede activar los directorios de idiomas, compruebe que mod-rewrite esté activo para su sitio. Si no está seguro de cómo hacerlo, envíe un correo electrónico a su proveedor de alojamiento. Puede usar este texto:
¡Hola!Un plugin de WordPress que quiero usar requiere que el módulo mod-rewrite esté activado. ¿Podría comprobarlo y decirme si mod-rewrite está activado para mi sitio web? http://example.com
Suponiendo que esté activado, WordPress ahora necesita poder controlar las reglas de escritura de URL. Para que esto ocurra, WordPress debe poder escribir en la carpeta en la que está instalado.
Asegúrese de que WordPress tenga acceso de lectura y escritura a las carpetas
De nuevo, si utiliza Apache, averigüe con qué usuario se ejecuta Apache y permita a ese usuario el acceso de lectura y escritura a la carpeta donde está instalado WordPress. Puede hacerlo usando su programa FTP, a través del shell o por correo electrónico.
Hola de nuevo,Necesito otro favor. He instalado WordPress en este directorio:
SU_DIRECTORIO_DE_INSTALACIÓN_DE_WP
¿Puede cambiar los permisos de archivo para todo el directorio (de forma recursiva), de modo que el servidor web pueda leer y escribir en él? Necesito que WordPress pueda escribir en algunos de los archivos.
Ahora, compruebe de nuevo.
Asegúrese de que su sitio utilice una estructura de enlaces permanentes «bonita»
Su sitio necesita utilizar una estructura de enlaces permanentes «bonita». Puede cambiar la estructura de enlaces permanentes de su sitio en la configuración de WordPress.
Solución de problemas
Si utiliza una CDN, como Cloudflare, es posible que bloquee el funcionamiento correcto de los idiomas en directorios al eliminar los comentarios HTML. Como resultado, puede ver un error de falso positivo, que muestra una advertencia relacionada con
?____icl_validate_domain=1 sin ningún problema en el front-end.
¿Necesita ayuda?
Si esto sigue sin funcionar, haga una consulta en el soporte de WPML.