Joomla开始和语言重定向

时间:2018-07-31 11:51:34

标签: php redirect joomla url-redirection language-recognition

我的Joomla有两个问题!项目:

  • 我想为我的域设置标准重定向,因此当用户在domain.com中键入内容时,他将被重定向到domain.com/my-joomla-menu-item。无法使用标准主菜单项完成此操作,因为我的设置不允许这样做。
  • 我的第二个问题是,是否可以使用用户浏览器语言进行标准语言重定向,例如,如果他是德语并输入domain.com/menu-item,他将被重定向到domain.com/de/菜单项,这是他在我的项目中输入的每个页面上的内容。

如果有人可以帮助我,我将非常高兴。预先致谢,并祝您愉快!

马格努斯

技术规格:

  1. Joomla版本:Joomla! 3.8.10稳定
  2. PHP版本:7.0.30-0 + deb9u1

1 个答案:

答案 0 :(得分:0)

好的,我自己找到了解决方案。我将代码发布在下面,因此,如果有人正在搜索类似的内容,他可以查看一下。

对于开始重定向:

<?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}");
    }
?>

我希望这对有人需要的人有帮助。

马格努斯人的问候