it-swarm-vi.com

Làm cách nào để ẩn các nút không nên truy cập trực tiếp từ người dùng và công cụ tìm kiếm?

Tôi đã thấy rằng đôi khi tôi có một nút chỉ chứa nội dung sẽ được hiển thị ở một nơi khác, nhưng không nên xem trực tiếp. Đó là, không ai nên đi đến nút/1234, nhưng nội dung trong nút 1234 sẽ được hiển thị ở một nơi khác. Ví dụ: tôi tạo một trang về nội dung được gắn thẻ bằng cách sử dụng lượt xem. Vì vậy, có các trang "Giới thiệu về tôi", "Giới thiệu" và "Giới thiệu về chúng". Tất cả những thứ này được hiển thị trong một trang duy nhất với các tab sử dụng Chế độ xem. Vì vậy, tôi không muốn mọi người truy cập trực tiếp vào nút "Giới thiệu" vì sau đó họ sẽ không thấy các tab cho các trang khác. Đồng thời, tôi không muốn Google cung cấp cho mọi người một liên kết trực tiếp đến nút này, tôi muốn giới hạn quyền truy cập để người dùng chỉ có thể truy cập thông qua Chế độ xem (ví dụ: tab).

Vì vậy, tôi cần hạn chế quyền truy cập vào nút, xóa nó khỏi Drupal kết quả tìm kiếm và đảm bảo Google không chọn nó. Có gợi ý nào không?

49
Chaulky

Điều này đối với tôi giống như một trường hợp sử dụng tốt cho mô-đun bảng vì bạn có thể tạo các bảng sẽ ghi đè lên các trang nút và có thể đặt bối cảnh cho bảng theo cách để đảm bảo người dùng nhìn thấy trang bạn muốn họ để xem nó cũng như các quy tắc truy cập cho các trang bảng điều khiển nếu bạn cần chúng. Để biết thêm chi tiết, xem bài đăng này trên d.o.

27
coderintherye

Mô-đun Rabbit Hole cung cấp tính năng này.

Rabbit Hole là một mô-đun bổ sung khả năng kiểm soát những gì sẽ xảy ra khi một thực thể đang được xem tại trang của chính nó.

Có lẽ bạn có một loại nội dung không bao giờ được hiển thị trên trang của chính nó, giống như một loại nội dung hình ảnh được hiển thị trong băng chuyền. Rabbit Hole có thể ngăn nút này truy cập được trên trang của chính nó, thông qua nút/xxx.

32
Pierre Buyle

Một tùy chọn có thể là không bao giờ xuất bản nút nhưng có trang trang tiêu dùng bỏ qua trạng thái xuất bản của họ. Vì vậy, trong ví dụ của bạn, chế độ xem "Giới thiệu" của bạn có thể bỏ qua trạng thái xuất bản của các nút "Giới thiệu về xxx". Vì các nút không được công bố, người dùng không được ủy quyền không thể truy cập chúng và chúng không nên được công cụ tìm kiếm lập chỉ mục.

Một giải pháp khác là sử dụng một hook_nodeapi('view') / hook_node_view() để thực hiện một drupal_goto() hoặc drupal_access_denied() khi trang nút được truy cập bởi người dùng không được ủy quyền. Xin lưu ý rằng hook_nodeapi() / hook_node_view() được sử dụng trong nhiều trường hợp và không chỉ khi xem trang nút.

hook_menu_alter() cũng có thể được sử dụng để thay đổi cuộc gọi lại truy cập của các trang nút để từ chối quyền truy cập vào bị ẩn điểm giao.

Điều tốt nhất có lẽ không phải là dựa trên cơ sở lọc trên ID nút được mã hóa cứng mà là sử dụng trường tùy chỉnh trên nút (sử dụng CCK/API API hoặc bảng tùy chỉnh) hoặc danh sách bị ẩn nút được lưu trữ trong một biến .

12
Pierre Buyle

Với Drupal 7, Rabbit Rabbit cung cấp tính năng này.

Rabbit Hole là một mô-đun bổ sung khả năng kiểm soát những gì sẽ xảy ra khi en thực thể đang được xem tại trang của chính nó.

Điều này hoạt động bằng cách cung cấp nhiều tùy chọn để kiểm soát những gì sẽ xảy ra khi thực thể đang được xem tại trang của chính nó. Bạn có khả năng

  1. Cung cấp một trang bị từ chối truy cập.

  2. Cung cấp một trang không tìm thấy trang.

  3. Phát hành chuyển hướng trang đến bất kỳ đường dẫn hoặc url bên ngoài.

  4. Hoặc đơn giản là hiển thị thực thể (hành vi thông thường).

Làm thế nào để :

Kích hoạt Các nút con thỏ Rabbit Sau đó, chúng ta sẽ có phần cấu hình được liên kết với mọi dạng trong Drupal

6
niksmac

Giải quyết. Đầu tiên tôi đã thử trả lời Pierre Buyle, nhưng nếu bạn không công bố một nút, nó không thể được propper truy cập và các nút đó trở nên vô dụng. Trong trường hợp của tôi, tôi có các nút cha và nút con, chỉ các nút con (cho mục đích quản trị viên) là các nút bị ẩn và KHÔNG được các trình thu thập thông tin lập chỉ mục. Những gì tôi đã làm với trình quản lý trang đã thực hiện chuyển hướng url (ẩn các nút này cho tất cả người dùng trừ quản trị viên) bằng phản hồi http theo hướng dẫn này bởi http://www.wunderkraut.com/1 và các nút không có chỉ mục bởi các trình thu thập thông tin được xử lý bằng mô-đun không có chỉ mục nút . Điều này sẽ hoạt động ngay cả khi bạn không có mối quan hệ nút paret-con. Liên kết đến hướng dẫn :

5
pinueve

Trong Drupal 7, cũng có thể sử dụng hook_node_access () , đây là một hook bình thường trong D7 có thể được thực hiện bởi tất cả các mô-đun cho tất cả các loại nút. Sau đó, bạn có thể từ chối truy cập nếu người dùng đang cố xem nút trên nút/nid của chính mình.

Bạn cũng có thể cần phải thực hiện hook_query_node_access_alter () và thêm một kiểm tra ở đó để ẩn nút trong kết quả tìm kiếm. Điều này thậm chí có thể là đủ cho riêng nó và bạn không cần hook_node_access (). Và nó thậm chí có thể hoạt động trong D6 vì bạn cũng có thể thay đổi truy vấn ở đó nhưng nó dễ dàng hơn nhiều trong D7 vì trình tạo truy vấn.

3
Berdir

Đơn giản chỉ cần đặt các nút đó là 'chưa được xuất bản', sau đó, trong chế độ xem, thêm nút lọc 'nút được xuất bản: không'.

Như seo lưu ý, là một cách thực hành tốt để tạo loại nội dung tùy chỉnh cho các nút 'ma' đó và nói với pathauto để cung cấp cho họ các url cụ thể (tôi sử dụng /dev/null/[title-raw];): ngay cả khi nút chưa được xuất bản, nó sẽ có bí danh url riêng, vì vậy, trong ví dụ của bạn nếu bạn tạo nút ma đầu tiên 'về chúng tôi', và sau đó trang xem 'về chúng tôi', url của giây sẽ là example.com/about-us-0example.com/about-us đã được lấy từ bản ghost (tuy nhiên, bạn có thể đặt đường dẫn theo cách thủ công)

2
Strae

Bạn có thể làm bằng cách sử dụng các mô-đun quy tắc.
[.__.] + Tạo quy tắc mới với sự kiện "Nội dung được xem".
[.___] Nhớ thêm điều kiện "và" hoặc "hoặc" nếu cần.
[.__.] + Tạo hành động để chuyển hướng đến một trang khác hoặc làm một cái gì đó khác. Đây là mã mẫu mà tôi đã xuất cho bạn

{ "rules_limit_viewing_some_nodes" : {
  "LABEL" : "Limit viewing some nodes",
  "PLUGIN" : "reaction rule",
  "REQUIRES" : [ "rules", "path" ],
  "ON" : [ "node_view" ],
  "IF" : [
     { "user_has_role" : {
       "account" : [ "site:current-user" ],
       "roles" : { "value" : { "1" : "1" } }
      }
     },
     { "AND" : [] },
     { "path_has_alias" : { "source" : "node\/28" } }
   ],
   "DO" : [ { "redirect" : { "url" : "error" } } ]
 }
}
2
Stone Vo

Bạn có thể sử dụng bất kỳ loại hệ thống truy cập nút nào và sử dụng lượt xem3. Ở đó bạn không thể vô hiệu hóa ghi lại sql trên các cài đặt truy vấn và vì vậy bạn có thể vô hiệu hóa hệ thống truy cập nút trên chế độ xem này.

2
Daniel Wehner

Tôi nghĩ cách dễ nhất để thực hiện những gì bạn muốn là sử dụng Trình quản lý trang (Ctools), rất đơn giản để sử dụng, tất cả những gì bạn phải làm là chỉ định nút nào sẽ chuyển hướng ở đâu (trong trường hợp này, từ nút này sang nút khác)

1
Nicolas_ii

Mô-đun Truy cập nội dung sẽ đáp ứng hoàn hảo yêu cầu của bạn.

Mô-đun này cho phép bạn quản lý quyền cho các loại nội dung theo vai trò và tác giả. Nó cho phép bạn chỉ định chế độ xem tùy chỉnh, chỉnh sửa và xóa quyền cho từng loại nội dung. Tùy chọn bạn có thể bật cho mỗi cài đặt truy cập nội dung, do đó bạn có thể tùy chỉnh quyền truy cập cho từng nút nội dung.

Nó cũng có tài liệu tốt để giúp bạn bắt đầu.

1
AjitS

Nếu các nút "bao gồm nội dung" của bạn cần không thể truy cập được, thì hãy xem xét việc chặn/nút/* trên máy chủ web "location =/node/*" level. Từ chối truy cập mặc định cho tất cả/nút. Mặc định cho phép truy cập vào các nút nhận được đường dẫn tự động như/trang.

(Mật khẩu .htaccess cơ bản cho các thư mục con là một cách tốt để chặn lập chỉ mục tìm kiếm tình cờ bởi các trình thu thập dữ liệu bên ngoài.)

Bạn không bao giờ có thể đảm bảo rằng một nút sẽ không thể truy cập được thông qua một mô-đun đóng góp sẽ được cài đặt trong tương lai hoặc một nút mà bạn chưa hiểu đầy đủ. (Kết quả tìm kiếm, danh sách, chế độ xem mặc định, tổng quan về danh mục phân loại ...)

Đó là những gì các nút dành cho.

Sự riêng tư của "nội dung được bao gồm" của bạn có quan trọng với bạn không? Nếu vậy, thì ...

  1. Mọi thứ có URL cuối cùng sẽ bị google tấn công.

    Bởi vì các công cụ tìm kiếm không chỉ dựa vào các liên kết nhện. Họ cũng đánh giá phản hồi của trình duyệt, v.v. Không có robot.txt, hoặc pathauto, globalredirect, rabbithole sẽ giúp bạn ngủ yên. Nếu nút có thể được truy cập, thì nó sẽ được lập chỉ mục. Có thể bởi trình duyệt/addons của riêng bạn.

  2. Xem xét lại nếu "nội dung được đưa vào" thực sự phải là một nút, nếu không ai nên truy cập nó dưới dạng trang ?

    Nếu "nội dung được bao gồm" của bạn sẽ được lưu trữ bên trong một bảng điều khiển nhỏ/khối/đoạn/đậu/..., thì bạn có nguy cơ bị liệt kê thấp hơn nhiều hoặc từng xuất hiện dưới dạng trang với một URL tự động mà bạn chưa biết về . (trang tổng quan về phân loại, tìm kiếm, lượt xem ...)

1
user18099

Mô-đun Restrict Node Xem trang thực hiện chính xác những gì bạn muốn.

Từ mô tả mô-đun:

Bạn đã bao giờ sử dụng một gật đầu trình chiếu mà bạn cần phải được xuất bản nhưng không muốn có thể truy cập nút bằng cách sử dụng đường dẫn nút/XXX? Mô-đun này là dành cho bạn!

Với mô-đun này, bạn có thể hạn chế quyền truy cập vào chế độ xem full của nút, vì vậy bạn không thể truy cập nút trên node/XXX.

0
user72672