मैं उन नोड्स को कैसे छिपाऊं जिन्हें उपयोगकर्ताओं और खोज इंजनों से सीधे एक्सेस नहीं किया जाना चाहिए?


51

मैंने पाया है कि कई बार मेरे पास एक नोड होता है जिसमें बस ऐसी सामग्री होती है जिसे कहीं और प्रदर्शित किया जाएगा, लेकिन इसे सीधे नहीं देखा जाना चाहिए। यही है, किसी को भी कभी भी नोड / 1234 पर नहीं जाना चाहिए, लेकिन नोड 1234 में सामग्री को कहीं और प्रदर्शित किया जाना चाहिए। उदाहरण के लिए, मैं विचारों का उपयोग करके टैब्ड सामग्री के साथ एक पृष्ठ बनाता हूं। तो "मेरे बारे में", "हमारे बारे में" और "उनके बारे में" पृष्ठ हैं। ये सभी व्यूज का उपयोग करते हुए टैब के साथ एक पेज में प्रदर्शित होते हैं। इसलिए मैं नहीं चाहता कि लोग सीधे "हमारे बारे में" नोड पर जाएं क्योंकि तब वे अन्य पृष्ठों के लिए टैब नहीं देखेंगे। उसी समय, मैं नहीं चाहता कि Google लोगों को इस नोड का सीधा लिंक दे, मैं पहुंच को सीमित करना चाहता हूं ताकि उपयोगकर्ता इसे केवल व्यू (यानी, टैब) के माध्यम से प्राप्त कर सकें।

इसलिए मुझे नोड तक पहुंच को प्रतिबंधित करने की आवश्यकता है, इसे Drupal खोज परिणामों से हटा दें, और सुनिश्चित करें कि Google इस पर पिक नहीं करता है। कोई सुझाव?


मैं वर्तमान में ड्रुपल 6 का उपयोग कर रहा हूं, लेकिन अगर यह 6 और 7 के बीच अलग है, तो मुझे लगता है कि दोनों के लिए जवाब देना उपयोगी होगा
Chaulky

यदि आप केवल कुछ नोड्स के बारे में चिंतित हैं, तो उन्हें Google खोजों से बाहर करने के लिए उन्हें robots.txt फ़ाइल में क्यों नहीं जोड़ा जाए ?
तंगुरेना

यह एक आम धारणा है। robots.txt आपकी साइट को अनुक्रमित करने के लिए खोज इंजन को रोकता नहीं है, यह खोज इंजन को आपकी साइट को क्रॉल करने से रोकता है । यदि कोई आपकी साइट के किसी पृष्ठ से लिंक करता है, तो Google लिंक का अनुसरण करेगा और यदि वह चाहे तो पृष्ठ को अनुक्रमित कर सकता है। यदि आप ROBOTS मेटा टैग का उपयोग करने की आवश्यकता को अनुक्रमित करने से रोकना चाहते हैं , तो इसका अर्थ है: <meta name = "ROBOTS" मान = "NOINDEX" />
René

जवाबों:


28

यह मुझे पैनल मॉड्यूल के लिए एक अच्छे उपयोग के मामले की तरह लगता है क्योंकि आप ऐसे पैनल बना सकते हैं जो नोड पेजों को ओवरराइड करेंगे, और पैनल के लिए संदर्भ सेट कर सकते हैं एक तरह से उपयोगकर्ताओं को यह देखने की गारंटी होनी चाहिए कि जिस पृष्ठ को आप उन्हें देखना चाहते हैं। यदि आपको उनकी आवश्यकता हो तो पैनल पृष्ठों के लिए नियम का उपयोग करें। अधिक जानकारी के लिए, इस पोस्ट को करें


यह वही दिखता है जो मैं चाहता हूं, और एक साफ, सरल तरीके से ... यहां तक ​​कि एक ट्यूटोरियल (अच्छा लिंक) भी आता है !!
चौकी

यह खरगोश छेद मॉड्यूल समाधान की तुलना में एक ओवरकिल नहीं है? क्या इसके अतिरिक्त लाभ हैं जो इसे चुना हुआ उत्तर बनाते हैं?
मारियो अवध

1
@ मेराओवाड खैर, एक खरगोश खरगोश मॉड्यूल के लिए इस सवाल का जवाब देने के एक साल बाद तक भी मौजूद नहीं था। उस समय, पैनलों का सबसे अच्छा समाधान था, मुझे अभी भी लगता है कि यह सबसे अच्छा समाधान है अगर किसी के पास पहले से ही पैनल स्थापित हैं, यदि नहीं तो खरगोश छेद एक बेहतर हल्का समाधान हो सकता है।
coderintherye

@nowarninglabel एक अच्छी टिप की तरह लगता है। धन्यवाद। हो सकता है कि आपको भविष्य के कामर्स के लिए बेहतर बनाने के लिए इस स्पष्टीकरण को उत्तर में जोड़ना चाहिए। चीयर्स।
मारियो अवध

33

रैबिट होल मॉड्यूल इस सुविधा प्रदान करता है।

रैबिट होल एक ऐसा मॉड्यूल है, जो उस स्थिति को नियंत्रित करने की क्षमता को जोड़ता है, जब किसी इकाई को अपने पेज पर देखा जा रहा हो।

शायद आपके पास एक सामग्री प्रकार है जिसे कभी भी अपने पृष्ठ पर प्रदर्शित नहीं किया जाना चाहिए, जैसे कि एक हिंडोला में प्रदर्शित छवि सामग्री प्रकार। खरगोश छेद इस नोड को नोड / xxx के माध्यम से अपने स्वयं के पृष्ठ पर सुलभ होने से रोक सकता है।


अब एक Drupal 6 संस्करण है।
mpdonadio

उत्कृष्ट, एक साफ और सरल समाधान।
जैमिक्स

1
अच्छा है, यह एक पैनल मॉड्यूल (इस उपयोग के मामले के लिए) से बेहतर है यदि आप केवल content_type नोड तक सीधे पहुंच को रोकना चाहते हैं क्योंकि यह केवल यही करता है!
लार्जन

13

एक विकल्प यह हो सकता है कि नोड को कभी प्रकाशित न करें लेकिन उपभोक्ता पृष्ठ ने उनकी प्रकाशन स्थिति की अनदेखी की है। इसलिए आपके उदाहरण में, आपका "अबाउट" दृश्य आपके "अबाउट-एक्सएक्सएक्स" नोड्स की प्रकाशन स्थिति को अनदेखा कर सकता है। चूंकि नोड प्रकाशित नहीं होते हैं, इसलिए अन-अधिकृत उपयोगकर्ता उन्हें एक्सेस नहीं कर सकते हैं और उन्हें खोज इंजन द्वारा अनुक्रमित नहीं किया जाना चाहिए।

एक अन्य समाधान एक प्रयोग है hook_nodeapi('view')/ hook_node_view()जारी करने के लिए कार्यान्वयन एक drupal_goto()या drupal_access_denied()जब नोड पेज एक गैर-अधिकृत उपयोगकर्ता आते हैं। ज्ञात हो कि hook_nodeapi()/ hook_node_view()कई मामलों में उपयोग किया जाता है और न केवल एक नोड पेज देखते समय।

hook_menu_alter()छिपे हुए नोड्स तक पहुंच से इनकार करने के लिए नोड पेजों के एक्सेस कॉलबैक को बदलने के लिए भी इस्तेमाल किया जा सकता है ।

सबसे अच्छा शायद हार्ड-कोडेड नोड आईडी पर फ़िल्टरिंग को आधार नहीं बनाना है लेकिन नोड पर कस्टम फ़ील्ड (CCK / फील्ड एपीआई या कस्टम टेबल का उपयोग करके) या किसी चर में छिपे नोड्स की सूची का उपयोग करने के लिए नहीं है ।


@ mongolity404 अच्छी पोस्ट, अच्छी जानकारी। मुझे कुछ और चीजों के लिए विचार दिया। लेकिन समुदाय विकि क्यों?
चौकी

मैंने अपना उत्तर समुदाय विकी के मामले में दिया, किसी को लगता है कि मेरे द्वारा सुझाए गए विकल्पों के लिए कोड नमूना प्रदान करना ...
पियरे ब्यूले

7

ड्रुपल 7 के लिए, खरगोश छेद यह सुविधा प्रदान करता है।

रैबिट होल एक ऐसा मॉड्यूल है जो यह नियंत्रित करने की क्षमता जोड़ता है कि क्या होना चाहिए जब एन इकाई को अपने पेज पर देखा जा रहा है।

यह तब नियंत्रित करने के लिए कई विकल्प प्रदान करके काम करता है जब इकाई को अपने पृष्ठ पर देखा जा रहा हो, तब क्या होना चाहिए। आपके पास करने की क्षमता है

  1. पहुँच निषेध पृष्ठ वितरित करें।

  2. पृष्ठ नहीं मिला पृष्ठ वितरित करें।

  3. पृष्ठ को किसी भी पथ या बाहरी url पर पुनर्निर्देशित करें।

  4. या बस इकाई (नियमित व्यवहार) प्रदर्शित करें।

कैसे :

खरगोश छेद नोड्स सबमॉड्यूल को सक्षम करें तब हमें Drupal CODE में हर फॉर्म के साथ जुड़े हुए सेक्शन मिलेगा


6

हल किया। पहले मैंने पियरे ब्यूइल उत्तर की कोशिश की, लेकिन यदि आप एक नोड को अप्रकाशित करते हैं, तो इसे प्रॉपर एक्सेस नहीं किया जा सकता है और वे नोड बेकार हो जाते हैं। मेरे मामले में मेरे पास माता-पिता और बच्चे के नोड्स हैं, केवल बाल नोड्स (व्यवस्थापक उद्देश्यों के लिए) छिपे हुए हैं और क्रॉलर्स द्वारा अनुक्रमित नहीं किए जाने हैं। क्या मैं पेज प्रबंधक के साथ यह किया द्वारा इस tuturial के अनुसार एक यूआरएल रीडायरेक्ट किसी http प्रतिक्रिया के साथ (सभी उपयोगकर्ताओं लेकिन व्यवस्थापक से इन नोड्स छुपा) बनाया http://www.wunderkraut.com/ 1 क्रॉलर्स द्वारा और कोई सूचकांक नोड्स handleled है द्वारा नोड कोई सूचकांक मॉड्यूल । यहां तक ​​कि यह तब भी काम करेगा जब आपके पास पेरेट-चाइल्ड नोड संबंध नहीं होगा। ट्यूटोरियल के लिए लिंक:


4

Drupal 7 में, हुक_नोड_केस () का उपयोग करना भी संभव है , यह D7 में एक सामान्य हुक है जो सभी नोड प्रकारों के लिए सभी मॉड्यूल द्वारा लागू किया जा सकता है। तब आप पहुंच से इनकार कर सकते हैं यदि उपयोगकर्ता नोड को अपने नोड / एनआईडी पर देखने की कोशिश कर रहा है।

आपको शायद खोज परिणामों में नोड को छिपाने के लिए हुक_क्वेरी_नोड_एसीट_लटर () को लागू करने और वहां एक चेक जोड़ने की आवश्यकता है। यह अपने आप पर पर्याप्त हो सकता है और आपको हुक_नोड_केस () की आवश्यकता नहीं है। और यह D6 में भी काम कर सकता है क्योंकि आप क्वेरी को वहां भी बदल सकते हैं लेकिन क्वेरी बिल्डर के कारण D7 में यह बहुत आसान है।


3

बस उन नोड को 'अप्रकाशित' के रूप में सेट करें, फिर, दृश्य में फ़िल्टर 'प्रकाशित नोड: नहीं' जोड़ें।

एसईओ नोट के रूप में, उन 'भूत' नोड्स के लिए एक कस्टम कंटेंट टाइप बनाने के लिए एक अच्छा अभ्यास है, और उन्हें विशिष्ट url (i उपयोग /dev/null/[title-raw]?) देने के लिए pathauto को बताएं : यदि नोड अप्रकाशित है, तो इसका अपना यूरिया उर्फ ​​होगा; तो अपने उदाहरण में आप पहली बार भूत नोड 'हमारे बारे में' और उसके बाद दृश्य पेज 'हमारे बारे में' बनाते हैं, दूसरे के यूआरएल की जाएगी example.com/about-us-0becose example.com/about-usभूत एक से लिया गया है (हालांकि, आप रास्तों मैन्युअल रूप से सेट कर सकते हैं)


3

आप किसी भी तरह के नोड-एक्सेस सिस्टम का उपयोग कर सकते हैं और व्यू 3 का उपयोग कर सकते हैं। वहां आप क्वेरी सेटिंग्स पर sql rewrite को अक्षम नहीं कर सकते हैं और इसलिए आप इस दृश्य पर नोड एक्सेस सिस्टम को अक्षम कर सकते हैं।


3

आप नियम मॉड्यूल का उपयोग करके कर सकते हैं।
+ "सामग्री देखी गई" घटना के साथ नया नियम बनाएं।
+ उदाहरण के लिए कुछ जोड़े यदि आवश्यक हो तो "और" या "या" शर्त जोड़ें।
+ दूसरे पृष्ठ पर पुनर्निर्देशित करने के लिए कार्रवाई बनाएँ या कुछ और करें। यह नमूना कोड है जो मैंने आपके लिए निर्यात किया है

{ "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

मुझे लगता है कि आप जो चाहते हैं उसे पूरा करने का सबसे आसान तरीका पेज मैनेजर (Ctools) का उपयोग करना है, उपयोग करने के लिए वास्तव में सरल है, आपको बस इतना करना है कि किस नोड को निर्दिष्ट करना है जहां (इस मामले में, एक नोड से दूसरे में)


2

सामग्री पहुँच मॉड्यूल पूरी तरह से आपकी आवश्यकता सूट करेगा।

यह मॉड्यूल आपको भूमिका और लेखक द्वारा सामग्री प्रकारों के लिए अनुमतियों को प्रबंधित करने की अनुमति देता है। यह आपको प्रत्येक सामग्री प्रकार के लिए कस्टम दृश्य निर्दिष्ट, संपादित करने और हटाने की अनुमति देता है। वैकल्पिक रूप से आप प्रति सामग्री एक्सेस सेटिंग्स को सक्षम कर सकते हैं, ताकि आप प्रत्येक सामग्री नोड के लिए पहुँच को अनुकूलित कर सकें।

इसकी शुरुआत करने में आपकी मदद करने के लिए एक अच्छा दस्तावेज भी है ।


2

यदि आपके "शामिल सामग्री" नोड्स को दुर्गम रहने की आवश्यकता है, तो वेबसर्वर "स्थान = / नोड / *" स्तर पर अवरुद्ध / नोड / * पर विचार करें । सभी / नोड्स के लिए डिफ़ॉल्ट अस्वीकार्य। डिफ़ॉल्ट उन नोड्स तक पहुंच की अनुमति देता है जो / पृष्ठों की तरह पथ-ऑटो पथ प्राप्त करते हैं।

(उपनिर्देशिकाओं के लिए मूल .htaccess पासवर्ड बाहरी क्रॉलर द्वारा आकस्मिक खोज अनुक्रमण को अवरुद्ध करने का एक अच्छा तरीका है।)

आप कभी भी गारंटी नहीं दे सकते कि भविष्य में स्थापित होने वाले एक योगदानित मॉड्यूल के माध्यम से एक नोड सुलभ नहीं होगा, या एक जिसे आप अभी तक नहीं समझते हैं। (खोज परिणाम, सूचीकरण, डिफ़ॉल्ट दृश्य, वर्गीकरण श्रेणी का अवलोकन ...)

यह क्या नोड्स के लिए कर रहे हैं।

क्या आपकी "शामिल सामग्री" की गोपनीयता आपके लिए महत्वपूर्ण है? यदि हां, तो ...

  1. सब कुछ है कि एक URL है अंततः Google द्वारा मारा जाएगा।

    क्योंकि सर्च इंजन केवल लिंक स्पाइडर पर निर्भर नहीं होते हैं। वे ब्राउज़र फीडबैक आदि का भी मूल्यांकन करते हैं। कोई भी रोबोट। टेक्स्ट, या पेटहुटो, ग्लोबलडायरेक्ट, रबीबथोल मॉड्यूल आपको शांति से सोने में मदद करेगा। यदि नोड तक पहुँचा जा सकता है, तो इसे अनुक्रमित किया जाएगा। हो सकता है कि आपके खुद के ब्राउजर / एडन द्वारा।

  2. पुनर्विचार करें यदि "शामिल होने वाली सामग्री" वास्तव में एक नोड होनी चाहिए , अगर कोई इसे पृष्ठ के रूप में एक्सेस न करे ?

    यदि आपकी "शामिल की गई सामग्री" को एक मिनी-पैनल / ब्लॉक / स्निपेट / बीन / ... के अंदर संग्रहित किया जाएगा, तो आप इसे सूचीबद्ध किए जाने के बहुत कम जोखिम में हैं, या कभी एक ऐसे पृष्ठ के रूप में प्रकट होते हैं, जिसका स्वचालित URL आपके साथ है के बारे में अभी तक पता नहीं है। (वर्गीकरण पृष्ठ, खोज, विचार ...)


0

प्रतिबंधित नोड पृष्ठ दृश्य मॉड्यूल बिल्कुल वही करती आप क्या चाहते हैं।

मॉड्यूल विवरण से:

क्या आपने कभी एक स्लाइड शो नोडोडाइप का उपयोग किया है जिसे आपको प्रकाशित करने की आवश्यकता है, लेकिन नहीं चाहते कि नोड तब तक नोड / एक्सएक्सएक्सएक्स पथ का उपयोग करके अपने आप से सुलभ हो? यह मॉड्यूल आपके लिए है!

इस मॉड्यूल के साथ आप नोड के fullव्यू मोड तक पहुंच को प्रतिबंधित कर सकते हैं , इसलिए आप नोड को एक्सेस नहीं कर सकते node/XXX

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.