Se WPML non vi permette di scegliere le directory delle lingue (ad es. http://esempio.it/es/ per lo spagnolo), è perché ha tentato di accedere a quell’URL e ha ottenuto un errore.

Per far funzionare le directory delle lingue, ecco cosa dovete configurare:

  1. Attivare la riscrittura degli URL (ci arriveremo fra poco).

Come potete vedere, non serve creare directory fisiche sul server. Le lingue nelle directory si creano con la riscrittura dell’URL.

Come WPML determina se può attivare le lingue nelle directory

WPML prova ad accedere a una chiamata di prova per verificare il funzionamento delle lingue nelle directory. Questa chiamata di prova è:

yourdomain/LANGUAGE/?____icl_validate_domain=1

Ad esempio, per controllare se lo spagnolo è abilitato per il nostro dominio (wpml.org), dobbiamo chiamare:

http://wpml.org/es/?____icl_validate_domain=1

Quando effettuate questa chiamata, otterrete una pagina apparentemente vuota. Il suo contenuto (visibile dalla fonte della pagina) è:

<!--http://wpml.org-->

Questo indica a WPML che WordPress permette l’accesso a questa struttura di URL. Se la chiamata va a buon fine, WPML consentirà di usare le lingue per directory. Se non va a buon fine, otterrete una sorta di messaggio indicante la natura del problema.

Se WPML visualizza una pagina di errore, disabilitate questa funzionalità e stampate il messaggio di errore in rosso, indicante le possibili spiegazioni per cui è disattivata.

Importante: WPML accede all’URL di convalida effettuando una chiamata fopen. Solitamente è simile all’azione dei browser, ma non è la stessa cosa. Accertatevi che fopen sia attivata sul vostro server. Per accertarvi che non sia bloccata, potete aggiungere quanto segue alla vostra configurazione PHP:

SecFilterEngine Off

Accertatevi che WordPress attivi la riscrittura degli URL

Per attivare la riscrittura degli URL, WordPress creerà un file chiamato .htaccess nella cartella in cui è stato installato. WordPress creerà questo file se non state utilizzando gli URL predefiniti, ma qualcosa di diverso. Questo file deve contenere quanto segue:

# BEGIN WordPress

<IfModule mod_rewrite.c>

  RewriteEngine On

  RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f

  RewriteCond %{REQUEST_FILENAME} !-d

  RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Se non esiste, provate a crearlo. Se esiste, ma è vuoto, copiate al suo interno questo contenuto e salvatelo.

Cosa significa riuscire a riscrivere gli URL?

La riscrittura degli URL è un meccanismo complesso, utilizzato intensivamente da WordPress. Affinché funzioni, il server web (solitamente Apache) deve poter riscrivere gli URL e WordPress deve poter gestire la logica di riscrittura.

In Apache, mod-rewrite effettua la riscrittura degli URL. È un modulo abbastanza standard che viene attivato per impostazione predefinita. Se state utilizzando Apache e non riuscite ad attivare le directory delle lingue, controllate che mod-rewrite sia attivo per il vostro sito. Se non siete certi della procedura da seguire, inviate un’e-mail al vostro provider di hosting. Potete utilizzare l’e-mail seguente:

Salve!

Un plug-in di WordPress che vorrei usare richiede il modulo mod-rewrite attivo. Potete controllare e informarmi se mod-rewrite è attivato per il mio sito web? http://esempio.it

Supponiamo che sia attivato. Ora WordPress deve poter controllare le regole di scrittura degli URL. Affinché succeda, WordPress deve poter scrivere nella cartella in cui è stato installato.

Anche qui, se state usando Apache, scoprite sotto quale utente gira Apache e autorizzate quell’utente a leggere e a scrivere nella cartella in cui è installato WordPress. Potete eseguire questa operazione utilizzando il vostro programma FTP, dall’interfaccia dei comandi o via e-mail:

Salve di nuovo,

Mi servirebbe un altro favore. Ho installato WordPress in questa directory:

VOSTRA_DIRECTORY_DI_INSTALLAZIONE_DI_WP

Potete modificare le autorizzazioni dei file per l’intera directory (in modo ricorsivo), in modo da permettere al server web di leggere e scrivere nella directory? Ho bisogno che WordPress possa scrivere su alcuni file.

Ora ricontrollate.

Se non funziona ancora, sentitevi liberi di visitare il forum e di aprire una nuova discussione.

<!--http://wpml.org-->