Как объединить перенаправление htaccess по языковой функции с www to non www and http в https? браузеры возвращают: err_too_many_redirects - PullRequest
0 голосов
/ 26 января 2020

я должен выполнить эти 3 условия, потому что мой веб-сайт работает как на английском, так и на испанском sh, в зависимости от браузера, который он должен перенаправить на испанский sh или остаться в английском sh, и мне нужно получить Убедитесь, что все мои посетители достигают его независимо от того, получают ли они доступ через www or non www and, должны всегда указывать на https в сценарии ES или EN

RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [OR]
RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^$ https://mywebsite/es/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(en|es)/?$ index.html?lang=$1 [QSA,NC,L]

1 Ответ

1 голос
/ 26 января 2020

Отказ от ответственности: моя речь не отвечает на ваш вопрос напрямую.

Как упоминалось в предыдущем комментарии, языковые перенаправления являются неоптимальной практикой. Лучший способ (и рекомендуемый Google):

  • Шаг 1: при первом посещении определите язык пользователя на основе IP-адреса и языка браузера,
  • Шаг 2 (абсолютно необходимый шаг ): показать свое предположение пользователю (во всплывающем окне) и попросить его подтвердить свое предположение или установить правильный язык,
  • Шаг 3: После действия пользователя установите повара ie с выбором языка и далее посещения перенаправляют его согласно htis cook ie.

Робот Googlebot не получает куки - он должен сканировать версии на разных языках ТОЛЬКО на основе ссылок hreflang.

...