Несколько недель назад я задал вопрос о мультиязычном сайте (см. Мультиязычный сайт, подкаталоги как язык (RewriteRule) ).
Это прекрасно работает (спасибо за это) Но так какЯ хочу сделать свой веб-сайт лучше, и я начал добавлять больше языков, появилась новая проблема.Я хочу посмотреть, могу ли я перенаправить пользователей прямо на сайт на их языке, если этот язык не существует или установлен cookie, я хочу перенаправить пользователей на их последний язык или язык по умолчанию.
ПокаЯ создал эту часть в моем .htaccess
RewriteCond% {QUERY_STRING} ^ $RewriteRule ^ /? $ En / [L, R = 301]
Это приводит к тому, что все вызовы на www.xxx.com/ перенаправляются на www.xxx.com/en/
Теперь вторая часть, в моем php-коде я сохраняю cookie, этот cookie установлен для www.xxx.com/
Я попробовал следующее:
RewriteCond% {HTTP_COOKIE} language = ([^;] +) [NC]RewriteRule ^ /? $% 1 / [L, R = 302]
Но это дает мне бесконечный цикл.
Я также попробовал это, так что если мой язык nl redirectна www.xxx.com/nl/ но это также приводит к бесконечному циклу.Также этот код должен выполняться только в некоторых случаях
RewriteCond% {HTTP: Accept-Language} (nl) [NC]RewriteRule ^ /? $ Nl / [L, R = 302]
Может ли кто-нибудь мне помочь, и возможно ли это в htaccess или я должен создать какую-то логику в PHP?
1Проверьте, установлен ли cookie на каком-либо языке (думаю, это должен быть код, указанный выше)2a Если файл cookie установлен, перенаправить пользователя на этот язык2b Если файл cookie не установлен, проверьте язык http-accept2b1 Если этот язык существует, перенаправьте на этот язык2b2 Если этот язык не существует, перенаправьте его по умолчанию
Заранее спасибо