Salta la navigazione

Questo è il forum di assistenza tecnica di WPML, il plug-in multilingue di WordPress.

La sua lettura è permessa a tutti, ma la pubblicazione è riservata esclusivamente ai clienti di WPML. Il team di WPML risponde sul forum 6 giorni su 7, 22 ore su 24.

Sun Mon Tue Wed Thu Fri Sat
- 11:00 – 15:00 11:00 – 15:00 11:00 – 15:00 11:00 – 15:00 11:00 – 15:00 -
- 16:00 – 20:00 16:00 – 20:00 16:00 – 20:00 16:00 – 20:00 16:00 – 20:00 -

Fuso orario del supporto: Europe/Rome (GMT+02:00)

Questo ticket contiene 2 risposte, ha 1 voce.

Ultimo aggiornamento da Laura 6 mese, 3 settimana fa.

Assistito da: Laura.

Autore Post
Novembre 21, 2024 alle 4:27 pm #16430163

riccardoM-25

Contesto del problema:
Stiamo riscontrando degli errori del server durante la navigazione delle lingue del sito ed approfondendo abbiamo notato che in questo momento le regole del file .htaccess vengono riscritte da WPML in questo modo:
RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index.php$ - [L] RewriteRule ^en/wp-login.php /wp-login.php [QSA,L] RewriteRule ^fr/wp-login.php /wp-login.php [QSA,L] RewriteRule ^de/wp-login.php /wp-login.php [QSA,L] RewriteRule ^it/wp-login.php /wp-login.php [QSA,L] RewriteRule ^es/wp-login.php /wp-login.php [QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]

E questo probabilmente causa l'errore 500.
Disattivando il plugin tutto funziona e non avviene la riscrittura delle regole del file .htaccess.

Sintomi:
500 internal server error durante la navigazione delle lingue del sito.

Domande:
Avete già riscontrato qualcosa di simile?
Come potremmo risolvere?

Novembre 21, 2024 alle 4:53 pm #16430389

riccardoM-25

Sembra che il problema si sia risolto aggiungendo il seguente codice al functions.php:

add_filter('mod_rewrite_rules', 'fix_rewritebase');
function fix_rewritebase($rules){
$home_root = parse_url(home_url());
if ( isset( $home_root['path'] ) ) {
$home_root = trailingslashit($home_root['path']);
} else {
$home_root = '/';
}

$wpml_root = parse_url(get_option('home'));
if ( isset( $wpml_root['path'] ) ) {
$wpml_root = trailingslashit($wpml_root['path']);
} else {
$wpml_root = '/';
}

$rules = str_replace("RewriteBase $home_root", "RewriteBase $wpml_root", $rules);
$rules = str_replace("RewriteRule . $home_root", "RewriteRule . $wpml_root", $rules);

return $rules;
}

Stiamo monitorando il sito per assicurarci che tutto continui a funzionare correttamente.

Novembre 22, 2024 alle 10:30 am #16433213

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+02:00)

Salve,

grazie per averci contattato.

La riscrittura dell'htaccess avviene per un conflitto con una terza parte, per risolvere definitivamente il problema andrebbe individuato quale plugin causa la riscrittura e fare un debug più approfondito.

L'argomento “[Chiuso] 500 internal server error e regole file .htaccess” è chiuso a nuove risposte.