Как переключаться между поддоменами без геолокаций?

Ссылка скопирована
1 ответ

Есть сайт с разными поддоменами 1.site.ru 2.site.ru.
Мне бы сделать выпадающий список с выбором сайта, но так чтоб если я нахожусь на URL 1.site.ru/link123, меня перенаправляло на 2.site.ru/link123.
С плагином или без.
Сразу скажу в php и java я ноль )

Дополнительно:

Мне бы сделать выпадающий список с выбором сайта, но так чтоб если я нахожусь на URL 1.site.ru/link123, меня перенаправляло на 2.site.ru/link123.

Сразу скажу в php и java я ноль )

Выглядит как тз на фрилансе. Или я ошибаюсь, и Вы что то написали самостоятельно?

  • Если честно, то вопрос очень простой.
    Даже если писать в куку, то в htaccess ты можешь переопределить поведение уже по состоянию этой самой куки.
    Это только направление, а дальше всё зависит от той самой системы, которую ты используешь.
    Не можешь - фриланс, хочешь - только разбираться самому, гуглить, искать, решать...
  • Чтобы не посылали на фриланс не надо ставить метку для разработчиков.
  • Ответы:

    Ищи плагины форм с условиями. Можно даже на СF7 это сделать, но лучше подобрать другой, не для обратной связи.

    Как переключаться между поддоменами без геолокаций?

    В простейшем случае как-то так

    <ul>   <li><a href="https://1.site.com/<?= $_SERVER['REQUEST_URI'] ?>">site 1</a></li>   <li><a href="https://2.site.com/<?= $_SERVER['REQUEST_URI'] ?>">site 2</a></li> </ul>

    <ul> <li><a href="https://1.site.com/<?= $_SERVER['REQUEST_URI'] ?>">site 1</a></li> <li><a href="https://2.site.com/<?= $_SERVER['REQUEST_URI'] ?>">site 2</a></li> </ul>

    • Вот сделал так на двух доменах
      https://kirov.stroykakomi.ru/
      https://stroykakomi.ru/

      Снизу.. но ссылки не работают

    • zasovskiyn, там php-код не выполняется. как-то не так вы его вставили
    • Сергей delphinpro, так вставил просто
      <ul>   <li><a href="https://stroykakomi.ru/<?= $_SERVER['REQUEST_URI'] ?>">Сыктывкар</a></li>   <li><a href="https://kirov.stroykakomi.ru/<?= $_SERVER['REQUEST_URI'] ?>">Киров</a></li> </ul>

      <ul> <li><a href="https://stroykakomi.ru/<?= $_SERVER['REQUEST_URI'] ?>">Сыктывкар</a></li> <li><a href="https://kirov.stroykakomi.ru/<?= $_SERVER['REQUEST_URI'] ?>">Киров</a></li> </ul>

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Мария Код Ответ

    Для переключения между поддоменами с сохранением пути геолокация не нужна. Это обычная замена host в текущем URL. Пользователь выбирает поддомен из выпадающего списка, а JavaScript перенаправляет его на тот же путь, но с другим доменом.

    Пример HTML:

    <select id="subdomain-switcher">
      <option value="1.site.ru">Сайт 1</option>
      <option value="2.site.ru">Сайт 2</option>
    </select>

    <select id="subdomain-switcher"> <option value="1.site.ru">Сайт 1</option> <option value="2.site.ru">Сайт 2</option> </select>

    Пример JS:

    document.getElementById('subdomain-switcher').addEventListener('change', function () {
      const targetHost = this.value;
      const url = new URL(window.location.href);
     
      url.hostname = targetHost;
      window.location.href = url.toString();
    });

    document.getElementById('subdomain-switcher').addEventListener('change', function () { const targetHost = this.value; const url = new URL(window.location.href); url.hostname = targetHost; window.location.href = url.toString(); });

    Если пользователь находится на 1.site.ru/link123 и выбирает 2.site.ru, его отправит на 2.site.ru/link123. Query-параметры и hash тоже сохранятся.

    Для WordPress можно вывести такой select в шапке через меню/виджет/шаблон. Главное — убедиться, что одинаковые пути реально существуют на всех поддоменах. Если на втором поддомене нет такой страницы, будет 404.

    Если нужно, чтобы выбранный поддомен запоминался, можно использовать cookie/localStorage:

    localStorage.setItem('selected_site_host', targetHost);

    localStorage.setItem('selected_site_host', targetHost);

    Но автоматом перекидывать пользователя при каждом заходе я бы не стал без явного согласия: это может раздражать и мешать индексации.

    Серверные редиректы через .htaccess или Nginx нужны только если переключение должно работать без JS или по каким-то правилам. Для ручного выбора в выпадающем списке достаточно JS.

    Итог: берёте текущий URL, меняете hostname, оставляете pathname как есть и отправляете пользователя. Никакой геолокации для этого не требуется.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно