it-swarm-vi.com

Làm cách nào tôi có thể tạo một mục menu trên một tên miền phụ khác?

Tôi muốn tạo một cấu trúc menu như thế này trong Joomla 2.5:

  • Nguồn gốc (www.example.com) [.__.]
    • Trong khoảng (www.example.com/about)
    • Trang web a (a.example.com)
    • Trang web b (b.example.com)

Có thể tạo các mục menu với các tên miền phụ khác nhau và làm cách nào để tạo chúng? Tôi đã làm việc với CMS "typo3" trước đây và không có vấn đề gì trong việc này, nhưng một tìm kiếm dài qua internet không giúp tôi giải quyết vấn đề này.

EDIT : Lưu ý rằng a.example.comb.example.com nằm trên cùng bản cài đặt Joomla, vì vậy tôi muốn tạo một "Bài viết đơn" mới với tên miền phụ.

8
Marc T.

Tôi chưa thử, nhưng Artio JoomSef tuyên bố sẽ cung cấp chức năng như vậy.
[.__.] Bạn có thể chỉ định các phần của trang web của mình sẽ được sử dụng cho các tên miền phụ khác nhau. Nó có thể là giá trị để kiểm tra nó.

Tài liệu của Artio JoomSEF

JoomSEF - Subdomains configuration

Nếu bạn đang tìm kiếm các cấu hình phức tạp hơn, các tiện ích mở rộng Joomla MultiSites cho phép bạn chạy nhiều trang web j Joomla, từ một cài đặt, với các cấu hình khác nhau. Một liên kết đến phần JED này được cung cấp trong một câu trả lời khác ở đây.

4
FFrewin

Đối với các mục menu bạn cần liên kết đến tên miền phụ của mình, hãy truy cập:

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

Sau đó, trong trường Link, bạn có thể nhập URL của tên miền phụ.

2
web-tiki

Bạn thực sự không thể làm điều này với Joomla bản địa, nhưng bạn có thể sử dụng một tiện ích mở rộng cố gắng giúp bạn làm điều này.

Bạn có thể tìm thấy chúng tại JED

1
Harald Leithner

Nếu bạn không muốn sử dụng một thành phần bên ngoài cho việc này, thì bạn có thể tạo một URL bên ngoài trong menu trỏ đến a.example.com Và sử dụng tệp .htaccess Để lấy nội dung từ liên kết hiện có của trang web của bạn .

Ví dụ

<IfModule mod_rewrite.c>
    RewriteEngine on

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

Giả sử, nếu người dùng của bạn truy cập URL này a.example.com/user/sd, Thì nội dung sẽ là example.com/user/sd Mà không thay đổi URL thực tế trên trình duyệt.

Chỉ sử dụng phương pháp này nếu bạn đã quen với việc sử dụng tệp .htaccess Và ok với chỉnh sửa thủ công. Điều này hữu ích nếu bạn không muốn sử dụng toàn bộ tiện ích mở rộng mới chỉ trong vài url.

1
SD.

Tôi biết câu hỏi này hơi cũ nhưng tôi đã tự hỏi điều tương tự và đây là giải pháp tôi đã đưa ra nếu bạn thay đổi tệp index.php mẫu với một chút mã bổ sung, bạn có thể tạo nhiều vị trí mô-đun dựa trên tên miền phụ và sau đó bạn chỉ định mục menu chính xác cho tên miền phụ có liên quan.

    $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; ?>

Trong ví dụ trên, dòng bắt đầu $ sub là những gì bạn cần tùy chỉnh cho trang web của riêng bạn, hiện tại ví dụ này tạo một khoảng trống cho mô-đun điều hướng tùy thuộc vào tên miền phụ - điều này được tạo cho một trang web có hai tên miền phụ và một tên miền chung và do đó, nó tạo ra ba vị trí điều hướng cho mỗi tên miền phụ - navigationhome navigationplus và navigationgroup.

Một vài điều cần lưu ý với mã -

để tìm tên miền phụ tôi đã sử dụng hàm in_array. Tôi có thể đã sử dụng câu lệnh chuyển đổi trên $ dom [1] để tìm tên miền phụ nhưng điều này sẽ không hoạt động nếu ai đó gõ một cái gì đó như www.plus.mysite.co.uk vì www sẽ ở $ dom [1] ... ví dụ.

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

explode ban đầu sử dụng str numplace để thay thế // bằng. điều này là để http/https ban đầu kết thúc trong mảng riêng của nó ($ dom [0] sẽ luôn chứa http/https mà tôi cho rằng có thể được sử dụng thêm nếu bạn muốn hiển thị các trang web khác nhau tùy thuộc vào giao thức được tải, nếu điều đó sau đó không có ai đó đưa vào một cái gì đó như http://plus.mysite.co.uk thì mảng đầu tiên sẽ chứa http: // plus và in_array sẽ Trả lại không có trận đấu.

Hãy nhớ rằng nếu tên miền phụ giống với tên miền trang web thì bạn cần chắc chắn rằng đó là tên miền cuối cùng trong? : chuỗi câu lệnh nếu không nó sẽ tự gán cho các tên miền phụ khác - ví dụ: nếu bạn có hai tên miền phụ, một tên là site.site.co.uk và trang web khác1.site.co.uk, câu lệnh sau sẽ hoạt động

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

nhưng cả hai sẽ không hoạt động đúng trong tình huống đó ...

    $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

Không chắc bạn sẽ sử dụng những thứ này theo cách này nhưng nó đáng chú ý.

0
TheKLF99