Как я могу создать пункт меню на другом поддомене?


8

Я хочу создать такую ​​структуру меню в Joomla 2.5:

  • Root ( www.example.com)
    • О ( www.example.com/about)
    • Сайт ( a.example.com)
    • Сайт б ( b.example.com)

Можно ли создавать пункты меню с разными поддоменами и как их создавать? Ранее я работал с CMS «typo3», и в этом не было никаких проблем, но долгий поиск в интернете не помог мне с этой проблемой.

РЕДАКТИРОВАТЬ: Обратите внимание, что a.example.comи b.example.comнаходятся на той же установке Joomla, поэтому я хотел бы сделать новую "Single Article" с поддоменом.


1
Пожалуйста, дайте нам больше информации о настройке Joomla. Как вы обслуживаете субдомены из одной установки Joomla?
TryHarder

1
Что такое контент для сайта А и сайта Б? Это просто отдельные пункты меню, которые ссылаются на статью, или они более устойчивы с собственным меню и страницами?
Дэвид Фрич

Извините, у меня не было времени ответить вчера. Я буду обслуживать эти субдомены для той же установки Joomla, а затем Joomla или компонент должен будет выполнить перенаправление (a.example.com, а не www.example.com/a.hmtl)
Марк Т.

Ответы:


4

Я не пробовал, но Artio JoomSef утверждает, что предоставляет такую ​​функциональность.
Вы можете указать разделы вашего сайта, которые будут использоваться для разных поддоменов. Возможно, стоит это проверить.

Artio JoomSEF документация

JoomSEF - настройка поддоменов

Если вы ищете более сложные конфигурации, расширения Joomla MultiSites позволяют вам запускать множество сайтов joomla, из одной установки, с различными конфигурациями. Ссылка на этот раздел JED приведена в другом ответе здесь.


Это вкратце то, что я хотел. Я тоже знаю компонент Multi Sites, но не хочу нескольких сайтов.
Марк Т.

2

Для пунктов меню, которые вам нужно связать со своими поддоменами, перейдите по ссылке:

menu-item parameters > menu item type > system links > choose "External URL"

Затем в Linkполе вы можете ввести URL своих поддоменов.


Извините, я не достаточно ясно Я сделал правку выше. Это должна быть та же установка Joomla И тот же сайт.
Марк Т.

1

Вы не можете сделать это с родной Joomla, но вы можете использовать расширение, которое пытается помочь вам сделать это.

Вы можете найти их на JED


1

Если вы не хотите использовать для этого внешний компонент, вы можете создать в своем меню внешний URL-адрес, указывающий на a.example.comваш .htaccessфайл, и использовать его для получения содержимого по существующей ссылке вашего сайта.

Например

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^a.example.com
    RewriteRule ^(.*) http://example.com/$1 [P]
</IfModule>

Предположим, что если ваш пользователь заходит на этот URL a.example.com/user/sd, то содержимое будет example.com/user/sdбез изменения фактического URL в браузере.

Используйте этот метод, только если вы хорошо знакомы с .htaccessиспользованием файлов и хорошо справляетесь с ручным редактированием. Это полезно, если вы не хотите использовать новое расширение всего за несколько URL.


0

Я знаю, что этот вопрос немного устарел, но мне было интересно то же самое, и вот решение, которое я придумала, если вы измените файл templates.php с небольшим количеством дополнительного кода, вы можете создать несколько позиций модулей на основе поддоменов. , а затем вы назначаете правильный пункт меню для соответствующего субдомена.

    $dom = explode ( '.', str_replace ( '//', '.', JURI::base () ) ) ;
    $sub = ( in_array ( 'plus', $dom ) ? 'plus' : ( in_array ('group', $dom) ? 'group' : 'home' ) ) ;
    if ($this->countModules('navigation'.$sub )) : ?>
        <nav class="navigation">
            <jdoc:include type="modules" name="navigation<?php echo $sub ?>" style="html5" />
        </nav>
    <?php  endif; ?>

В приведенном выше примере строка, начинающаяся с $ sub, - это то, что вам нужно настроить для своего собственного веб-сайта. В настоящее время в примере создается пространство для модуля навигации в зависимости от субдомена - оно было создано для сайта с двумя субдоменами и общий домен и поэтому он создает три позиции навигации для каждого субдомена - navigationhome navigationplus и navigationgroup.

Несколько вещей, чтобы отметить с кодом -

чтобы найти поддомен, я использовал функцию in_array. Я мог бы использовать оператор switch в $ dom [1], чтобы найти поддомен, но это не сработало бы, если бы кто-нибудь набрал что-то вроде www.plus.mysite.co.uk, так как www был бы в $ dom [1] ... например

    switch ( $dom[1] )
    {
        case 'group' : $sub = 'group' ; break ;
        case 'plus' : $sub = 'plus' ; break ;
        default : $sub = 'home' ; break ;
    }

начальный разнесение использует str_replace для замены // на. это так, что исходный http / https заканчивается в своем собственном массиве ($ dom [0] всегда будет содержать http / https, который, я полагаю, мог бы использоваться в дальнейшем, если вы хотите показывать разные сайты в зависимости от загруженного протокола, если это тогда кто-то вставил что-то вроде http://plus.mysite.co.uk, тогда первый массив содержал бы http: // plus, а in_array не возвращал бы совпадение.

Помните, что если субдомен совпадает с доменом сайта, то вам нужно убедиться, что он является последним в? : цепочка операторов, в противном случае она будет присваиваться другим поддоменам - например, если у вас есть два поддомена, один из которых называется site.site.co.uk, а другой site1.site.co.uk, будет работать следующий оператор

    $sub = ( in_array ( 'site1' ) ? 'site1' : ( in_array ( 'site' ) ? 'site' : 'site' ) ) ;
    //it never reaches the in_array ( 'site' ) if sub domain is site1

но ни один из них не будет работать должным образом в этой ситуации ...

    $sub = ( in_array ( 'site' ) ? 'site' : ( in_array ( 'site1' ) ? 'site1' : 'main' ) ) ; 
    // all domains would be referred to as site because XXX.site.co.uk provides a match
    $sub = ( in_array ( 'site1' ) ? 'site1' : ( in_array ( 'site' ) ? 'site' : 'main' ) ) ; 
    // www.site.co.uk would still be site and not main

Маловероятно, что вы будете использовать их таким образом, но это стоит отметить.


-1

Да, вы можете создать эту структуру меню в Joomla. Как правило, пункты меню указывают на вид в компоненте, определяющий элемент и другие параметры.

Когда вы устанавливаете Joomla с обучающими демонстрационными данными, вы заметите два совершенно разных примера сайтов, в том числе обучающую демонстрацию, которая научит вас всему о Joomla.


Можете ли вы объяснить это? Я никогда не видел подобного субдомена со стандартной установкой joomla. Всегда требовался плагин SEF, чтобы переопределить материал. Да, два разных сайта, но не из меню с поддоменами в качестве URL.
Брайан Пит

Содержание сайта Joomla не связано с (суб) доменами. Вы настраиваете свою сеть и веб-сервер, чтобы справиться с этим.
Соваинфо

Да, но ваш ответ на самом деле не дает решения. Я подозреваю, что решение включает в себя правильную настройку DNS и затем использование ссылки на внешнее меню для отправки пользователя по имени субдомена. В противном случае вы бы просто оказались на обычной странице в Joomla (если бы вы просто ссылались на статью). Это не простая настройка вообще.
Брайан Пит

Нет четких инструкций. Вспомните, как два года назад были созданы два магазина с использованием hikashop. Не вспоминайте детали. Вы, вероятно, хотите, чтобы некоторые вещи в .htaccess направлялись на соответствующие URL-адреса. Очень сильно зависит от ваших требований.
Соваинфо

Я бы предложил удалить этот ответ тогда. Это действительно не дает ОП много информации.
Брайан Пит
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.