Joomla Start и языковые перенаправления

У меня есть два вопроса с моей Joomla! Проект:

  • Я хочу иметь стандартное перенаправление для моего домена, поэтому, когда пользователь вводит domain.com, он будет перенаправлен на domain.com/my-joomla-menu-item. Это невозможно сделать с помощью стандартного пункта "Главное меню", потому что мои настройки этого не позволяют.
  • Мой второй вопрос: можно ли перенаправить стандартный язык на языке браузера пользователя, например, если он немец и заходит на domain.com/menu-item, он перенаправляется на domain.com/de/menu-item, и это на каждой странице он входит в мой проект.

Я был бы очень рад, если бы кто-нибудь мог мне помочь. Большое спасибо заранее и хорошего дня,

Магнус

Технические характеристики:

  1. Версия Joomla: Joomla! 3.8.10 Стабильный
  2. Версия PHP: 7.0.30-0+deb9u1

1 ответ

Решение

Хорошо, я нашел решение сам. Я разместил код ниже, так что если кто-то ищет что-то подобное, он может посмотреть на него.

Для начала перенаправления:

<?php
    $currentLink = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    if ($currentLink == "https://example.com") {
        header("Location: https://example.com/cool-submenu");
    }
    if ($currentLink == "https://example.com/") {
        header("Location: https://example.com/cool-submenu");
    }
?>

Для языкового перенаправления:

<?php
    $url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    $path = parse_url($url, PHP_URL_PATH);
    $pathFragments = explode('/', $path);
    $end = end($pathFragments);
    if ($lang == "de") {
        header("Location: https://example.com/de/{$end}");
    }
?>

Надеюсь, это поможет, если кому-то это нужно.

Привет, Магнус

Другие вопросы по тегам