Поддержка WordPress Multisite Перенаправление с основного домена на языковой поддом

  • Здравствуйте!
    Подскажите, пожалуйста, как сделать перенаправление с основного домена на один из языковых поддоменов ru. или en. в зависимости от настроек браузера?

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Модератор Yui

    (@fierevere)

    永子

    .htaccess

    RewriteCond %{HTTP_HOST} !^en.mydomain.com$ [NC]
    RewriteCond %{HTTP:Accept-Language} ^en [NC]
    RewriteRule .* http://en.mydomain.com [R,L]
    RewriteCond %{HTTP_HOST} !^ru.mydomain.com$ [NC]
    RewriteCond %{HTTP:Accept-Language} ^ru [NC]
    RewriteRule .* http://ru.mydomain.com [R,L]

    английский редирект лучше опустить ниже русского,
    чтобы русский был приоритетнее

    Спасибо!

    Ещё один момент: мне не требуется перенаправление с любого поддомена (как вроде бы у вас написано) мне надо чтобы оно действовало только для корневого домена.
    Мне заменить:

    RewriteCond %{HTTP_HOST} !^ru.mydomain.com$ [NC]

    на

    RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC]

    ?
    Во так будет выглядеть всё вместе:

    RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC]
    RewriteCond %{HTTP:Accept-Language} ^ru [NC]
    RewriteRule .* http://ru.mydomain.com [R,L]
    RewriteCond %{HTTP:Accept-Language} ^en [NC]
    RewriteRule .* http://en.mydomain.com [R,L]

    Правильно?

    Это лучше поставить сразу после Rewrite Engene ON ?

    Всё это нормально работает.
    Спасибо!

    Модератор Yui

    (@fierevere)

    永子

    Это лучше поставить сразу после Rewrite Engene ON ?

    да и вне секции

    #BEGIN WORDPRESS
    #END WORDPRESS

    У меня Rewrite Engene ONнаходится внутри секции `#BEGIN WORDPRESS
    #END WORDPRESS`
    Я поставил этот блок сразу после включения движка, вроде работает нормально, хоть и внутри секции

    Вдруг пришло мне в голову что надо ведь учитывать не только людей, но и роботов, а роботы посылают заголовок «Accept-Language»? И все ли посылают?
    Вероятно мне надо после основной секции:

    RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC]
    RewriteCond %{HTTP:Accept-Language} ^ru [NC]
    RewriteRule .* http://ru.mydomain.com [R,L]
    RewriteCond %{HTTP:Accept-Language} ^en [NC]
    RewriteRule .* http://en.mydomain.com [R,L]

    Добавить ещё одно правило безусловного перенаправления на поддомен ru.mydomain.com если запрашивалась страница с mydomain.com

    Можете подсказать как это написать?

    Модератор Yui

    (@fierevere)

    永子

    а роботы посылают заголовок «Accept-Language»? И все ли посылают?

    только Yandex
    хотя конечно некоторые вещи могли измениться с того времени

    впрочем если нет accept-language — нет и редиректа, так что с индексацией гугла и прочих проблем не будет, а вот яндекс отредиректит

    PS localized page markup

    так что с индексацией гугла и прочих проблем не будет

    Понятно, тогда ничего добавлять не буду.

    localized page markup

    — спасибо за напоминание! Конечно — это дело хорошее, но я почему-то сам для себя решил, что когда поддомены имеют явно языковую направленность, робот и сам разберётся в ходе индексации что кому показывать. Может я и не прав. Как вы думаете?

    Всё хорошо получается кроме одного:
    Теперь не могу попасть в консоль мультисайта, всё время на русский поддомен перекидывает.

    Здравствуйте!

    Подскажите, как все таки получилось решить проблему. И поделитесь если не сложно, что прописали в .htaccess для правильного перенаправления.

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Тема «Перенаправление с основного домена на языковой поддом» закрыта для новых ответов.