Перенаправление хостинга Firebase в подкаталог предпочтительного языка, найденный в конфигурации браузера - PullRequest
1 голос
/ 11 апреля 2020

Я развернул приложение Angular i18n, поэтому у меня есть две сборки - одна для пользователей, говорящих на немецком языке, и одна для пользователей, говорящих на английском языке, и остальной мир.

Для развертывания я уже настроил firebase.json для перенаправления в подкаталог /de при запуске. Есть ли способ перенаправить в подкаталог предпочтительного языка, определенного в конфигурации браузера (или en, если предпочитаемый язык не найден)?

{
  "hosting": {
    "public": "dist/tudor",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "redirects": [
      {
        "source" : "/",
        "destination" : "/de",
        "type" : 301
      }
    ],
    "rewrites": [
      {
        "source": "/en/**",
        "destination": "/en/index.html"
      },
      {
        "source": "/de/**",
        "destination": "/de/index.html"
      }
    ]
  }
}

Apache эквивалент:

<VirtualHost *:80>
  ServerName www.myapp.com
  DocumentRoot /var/www
  <Directory "/var/www">
    RewriteEngine on
    RewriteBase /
    RewriteRule ^../index\.html$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (..) $1/index.html [L]
    RewriteCond %{HTTP:Accept-Language} ^fr [NC]
    RewriteRule ^$ /fr/ [R]
    RewriteCond %{HTTP:Accept-Language} ^es [NC]
    RewriteRule ^$ /es/ [R]
    RewriteCond %{HTTP:Accept-Language} !^es [NC]
    RewriteCond %{HTTP:Accept-Language} !^fr [NC]
    RewriteRule ^$ /en/ [R]
  </Directory>
</VirtualHost>
...