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?
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?
Câu trả lời:
Không có cách dễ dàng để ẩn trang đó. Nếu bạn không sử dụng nó, bạn có thể triển khai hook_menu_alter () và xóa nó hoàn toàn hoặc đặt lại cuộc gọi lại truy cập của nó FALSE
.
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.
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';
}
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.
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.
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
drush @example.com views-disable frontpage
sẽ 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.
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.
/node
vẫn có thể đạt được, mặc định nó sẽ không hiển thị
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.
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 .
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']);
}
}
}