Joomla Start и языковые перенаправления
У меня есть два вопроса с моей Joomla! Проект:
- Я хочу иметь стандартное перенаправление для моего домена, поэтому, когда пользователь вводит domain.com, он будет перенаправлен на domain.com/my-joomla-menu-item. Это невозможно сделать с помощью стандартного пункта "Главное меню", потому что мои настройки этого не позволяют.
- Мой второй вопрос: можно ли перенаправить стандартный язык на языке браузера пользователя, например, если он немец и заходит на domain.com/menu-item, он перенаправляется на domain.com/de/menu-item, и это на каждой странице он входит в мой проект.
Я был бы очень рад, если бы кто-нибудь мог мне помочь. Большое спасибо заранее и хорошего дня,
Магнус
Технические характеристики:
- Версия Joomla: Joomla! 3.8.10 Стабильный
- Версия 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}");
}
?>
Надеюсь, это поможет, если кому-то это нужно.
Привет, Магнус