Проблема с переписыванием URL для многоязычного сайта - PullRequest
0 голосов
/ 04 января 2019

Я попытался установить некоторые правила переписывания URL для моего многоязычного веб-сайта.Он работал, и я хотел применить некоторые исправления, и теперь он больше не работает.

Когда я попробовал этот URL: http://mywebsite.fr/fr/, браузер изменяет URL-адрес для http://mywebsite.fr/fr/?lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr

Вот код:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(fr|en|nl)/$ index.php?lang=$1&%{QUERY_STRING} [L]

Я сказал себе, что такого рода ошибка не может возникнуть из-за написания URL, поэтому в своем php-коде я добавил «return false» в качествеВ самом начале страницы проблема по-прежнему возникает с белой страницей ...

Кроме того, если я отключил все правила перезаписи URL, я получил ошибку apache "Not found" ...

Я также пытался перезапустить Apache, та же проблема ...

У кого-нибудь есть идея?Спасибо!

1 Ответ

0 голосов
/ 04 января 2019

То, что вы видите, является типичным циклом перезаписи.Причина в том, что вы безоговорочно переписываете, независимо от того, была ли цель перезаписи уже достигнута, и была ли перезапись уже выполнена ранее.

Вы можете обойти это, используя условие:

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{QUERY_STRING} !^lang=
RewriteRule ^/?(fr|en|nl)/?$ /index.php?lang=$1 [L,QSA]
...