Перенаправление в подпапку при отображении URL-адреса root с перенаправлением языка .htaccess и ручным переключателем языка - PullRequest
0 голосов
/ 16 марта 2020

Заранее извиняюсь за то, что вы внесли свой вклад в исчерпывающий список вопросов, связанных с перенаправлениями .htaccess. Мой вопрос касается клиентского веб-сайта, состоящего из нескольких языковых версий, структура папок выглядит следующим образом:

index.html (default german version)
— en
  index.html
— fr
  index.html
— nl
  index.html
– css
– img
– js

Теперь указанный клиент попросил меня перенаправить язык, что я и сделал, переместив немецкую версию по умолчанию в свою собственную подпапку и поместив следующий .htaccess в каталог root .

RewriteEngine On

# Redirect to dutch language version
RewriteCond %{HTTP:Accept-language} ^(nl.*) [NC]
RewriteRule ^$ /nl/ [L,R=302]

# Redirect to french language version
RewriteCond %{HTTP:Accept-language} ^(fr.*) [NC]
RewriteRule ^$ /fr/ [L,R=302]

# Redirect to english language version
RewriteCond %{HTTP:Accept-language} ^(en.*) [NC]
RewriteRule ^$ /en/ [L,R=302]

# Redirect all other languages to english language version
RewriteCond %{HTTP:Accept-language} !^(nl|fr|de|en).* [NC]
RewriteRule ^$ /en/ [L,R=302]

# Redirect to german language version
RewriteCond %{HTTP:Accept-language} ^(de.*) [NC]
RewriteRule ^$ /de/ [L,R=302]

Перенаправители работают так, как должны, и не конфликтуют с ручной выбор языка на каждой соответствующей странице. Единственная проблема, с которой я остаюсь, заключается в том, что URL-адрес, отображаемый в браузере, включает подпапку для соответствующего языка, например:

mydomain.com/de/
mydomain.com/en/
mydomain.com/fr/
mydomain.com/nl/

Хотя это и предназначено для языков не по умолчанию (т. е. en, fr и nl), URL должен показывать адрес root при посещении немецкой версии по умолчанию :

mydomain.com
instead of
mydomain.com/de/

Как мне нужно изменить мой .htaccess файл для достижения желаемого поведения? Я тестирую сайт из подпапки на сервере сайтов с именем dev, поэтому предлагаемое решение должно идеально работать с mydomain.com и dev.mydomain.com.

Заранее большое спасибо.

...