Làm cách nào để ẩn trang / nút mặc định?


22

Drupal out of the box đi kèm với một trang (là trang chủ mặc định) được gán cho đường dẫn nút .

Làm cách nào để tránh người dùng tiếp cận và chuyển hướng họ đến trang chủ thực tế của trang web?


Tôi đã sử dụng giải pháp được đề xuất bởi @kiamlaluno để chuyển hướng nút đến một đường dẫn khác.

Câu trả lời:



8

Tạo bí danh đường dẫn chuyển hướng từ / nút đến trang bạn muốn sử dụng làm trang trước.


1
Điều này không hoạt động với tôi với mô-đun bí danh url, bí danh / nút thành <front> hoặc index.php. Tôi đang cố gắng chuyển tiếp đến /
john

5
Tôi đã làm / nút đến <front> và nó hoạt động tốt.
Sean Bannister

Giống như bạn @john UI của bí danh không cho phép tôi đặt lên trang đầu. Tôi đã phải sử dụng mô-đun chuyển hướng thay thế.
viết bài

6

Tôi thích thay đổi cuộc gọi lại trang của / nút để nó hiển thị trang 404 lỗi.
Điều này luôn hiển thị trang 404 tùy chỉnh của bạn khi truy cập / nút.

function yourmodule_menu_alter(&$items) {
    $items['node']['page callback'] = 'drupal_not_found';      
}

4
<?php
function MY_MODULE_menu_alter(&$callbacks) {
unset($callbacks['node']);
}
?>

hoặc thêm phần này vào settings.php (URL gửi vào)

<?php
function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  if ($path == 'node') {
    $result = ''; 
  }
}
?>

2

Tôi đã sử dụng mô-đun Redirect : Tôi vừa thêm một chuyển hướng 301 mới từ nodeđến <front>.


1

Tương tự như câu trả lời của berdirs, tôi có đoạn mã sau được bao gồm trong một mô-đun là một phần của bản phân phối tùy chỉnh mà chúng tôi xây dựng từ:

function HOOK_menu_alter(&$items) {
  $items['node']['page callback'] = '_HOOK_empty_home';
}

function _HOOK_empty_home() {
  drupal_set_title('');
  return '';
}

Bằng cách đó, tôi có thể giữ đường dẫn 'nút' làm frontpage và sử dụng bối cảnh để định vị các khối để xây dựng frontpage cần thiết.


1

Bạn có thể tạo một trang được ánh xạ tới / nút không được xuất bản. Vì vậy, người dùng sẽ gọi đường dẫn này sẽ có trang bị cấm truy cập


1

Giải pháp dễ dàng cho tôi là tạo một trang mà tôi muốn trở thành trang chủ và đặt URL thành / nút. Sau đó, dưới / admin / config / system / site-information đặt trang trước mặc định thành / nút. Bạn không bao giờ thấy "/ nút" trong URL trừ khi có ai đó thực sự nhập nó. Thật nhanh chóng, dễ dàng và sạch sẽ, miễn là bạn muốn đặt URL trang chủ của mình thành / nút.


1

Bạn có thể tạo một trang mới với URL nút và mọi người có thể thấy một thông báo chuyển hướng họ đến trang trước hoặc chọn một danh mục của một cái gì đó.


1

Tôi đã thử nhiều thứ. Sau đó, đối với Drupal 7 và 8, tôi thấy việc này là dễ dàng nhất, không cần viết bất kỳ mã nào:

tải xuống và kích hoạt các mô-đun node_page_disable, globalredirect và redirect.

(Lưu ý: mô-đun node_page_disable chuyển hướng / nút thành 404 không tìm thấy trang lỗi.)

sau đó thêm một chuyển hướng cho / nút -> trang trước

Xin lưu ý rằng chuyển hướng chuyển hướng cả / nút và / nút / đến trang trước.

và một bài viết hữu ích để đọc: https://www.drupalaid.com/blog/3-things-you-should- leather


Đó là một góc nhìn trong D8, vì vậy drush @example.com views-disable frontpagesẽ tắt nó đi. Vẫn sẽ nhận được 404 mặc dù cho đến khi những việc khác được thực hiện.
colan

0

Tạo một nút, sau đó đi đến cấu hình trang web -> thông tin trang web và đặt trang chủ thành đường dẫn của nút. Vì vậy, nếu đó là nút đầu tiên của bạn, nó sẽ là nút / 1.

Chỉnh sửa: Theo mặc định, chỉ bằng cách tạo một nút, trang đó sẽ biến mất nếu bạn chọn 'quảng cáo lên trang trước'. Bước thông tin trang web sẽ làm cho nút đó trang trước thực tế của bạn.


1
Đúng, nhưng /nodevẫn có thể đạt được, mặc định nó sẽ không hiển thị
Laxman13

Tôi đọc sai những gì anh ấy yêu cầu. Điều gì về mô đun chuyển hướng Đường dẫn http://drupal.org/project/path_redirect ?
Mike L.

1
Thật không may, Path Redirect không cho phép bạn chuyển hướng từ các đường dẫn hiện có. Nó kiểm tra xem liệu đường dẫn bạn đang cố chuyển hướng có phải là đường dẫn hợp lệ hay không và nếu vậy, chuyển hướng không được tạo và cảnh báo được hiển thị.
Laxman13

Mát mẻ. Tôi đã không sử dụng nó trong một thời gian, vì vậy không tích cực. Cảm ơn!
Mike L.

0

Bạn có thể sử dụng mô-đun Quy tắc để kiểm tra url trước khi xem một trang và chuyển hướng người dùng sang trang khác nếu bạn muốn.

  • Thêm quy tắc với sự kiện: Nội dung sẽ được xem
  • Thêm điều kiện: Thực thi mã PHP tùy chỉnh và kiểm tra đường dẫn
  • Thêm hành động: Chuyển hướng trang và chọn đường dẫn bạn muốn chuyển hướng đến

Điều này không chỉ đưa ra các hình phạt hiệu suất nghiêm trọng, nó nên được coi là rất không an toàn. "Thực thi PHP tùy chỉnh" không nên được đề xuất trừ khi tất cả các tác dụng phụ và nhược điểm đều rất nổi tiếng. -1 cho điều đó.
berkes

@berkes Tôi cho rằng đó là vì Rules sẽ thực hiện kiểm tra mỗi lần tải trang và do đó làm chậm trang web? Tại sao "Thực thi php tùy chỉnh" luôn luôn được tán thành? Rõ ràng là không tốt cho việc sử dụng của người dùng cuối, nhưng cũng có những nhược điểm cho việc sử dụng của nhà phát triển? Xin lỗi nếu lâu, đã làm việc rất chăm chỉ để trở thành người tốt nhất có thể với Drupal và học "những thứ trong và ngoài". (Có thể thêm phần thứ hai dưới dạng câu hỏi riêng nếu cần)
Laxman13

vui lòng xem xét một Q mới "Những nhược điểm của việc sử dụng 'PHP' tùy chỉnh" với một số khu vực ví dụ (khối, đối số khung nhìn, bộ lọc php, v.v.) nơi điều này có thể được thảo luận?
berkes

0

Câu hỏi phổ biến từ khá nhiều năm trước, với một số câu trả lời khá thú vị. Tuy nhiên, hãy đoán xem: "Ngày nay có một mô-đun cho nó ... thực sự thậm chí là hai!" (không được đề cập trong bất kỳ câu trả lời trước).

Đọc để biết thêm chi tiết ... (trích dẫn từ các trang dự án của họ) ...

Quản trị viên trang nút (D6 hoặc D7):

Mô-đun này thêm một bảng cài đặt quản trị để xử lý truy cập / nút trang. Khi nó được kích hoạt, có ba cấu hình rõ ràng:

  • Lõi - Lõi Drupal sẽ xử lý truy cập trang nút như bình thường: tất cả người dùng có quyền 'truy cập nội dung'
  • Vô hiệu hóa - Không ai có thể truy cập / nút. Nó sẽ trả về 'Không tìm thấy trang' (404).
  • Theo sự cho phép - Quyền truy cập sẽ được xử lý bởi một quyền mới: 'trang nút truy cập'

Vô hiệu hóa trang Node (D6 hoặc D7, mặc dù chỉ có phiên bản RC2):

Cho phép dễ dàng truy cập UI và vô hiệu hóa đường dẫn / nút khi không được sử dụng. Điều này được lấy cảm hứng từ việc xem xét bảo mật trong Mô-đun kiểm tra sản xuất .


-1

cách tốt nhất là ẩn các nút khỏi hàm template_pre process_page

function template_preprocess_page(&$variables) {
    if ($variables['is_front'] == 1) {
        if (isset($variables['page']['content']['system_main'])) {
            unset($variables['page']['content']['system_main']);
        }
    }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.