Doğrudan kullanıcılardan ve arama motorlarından erişilmemesi gereken düğümleri nasıl gizlerim?


51

Bazen başka bir yerde görüntülenecek içeriği içeren ancak doğrudan görüntülenmemesi gereken bir düğüme sahip olduğumu öğrendim. Yani hiç kimse hiç bir zaman / 1234 no'lu düğüme gitmemelidir, ancak 1234 no'lu düğümdeki içerik başka bir yerde gösterilmelidir. Örneğin, görünümleri kullanarak sekmeli içeriğe sahip yaklaşık bir sayfa oluşturuyorum. Yani "Hakkımda", "Hakkımızda" ve "Onlar Hakkında" sayfaları var. Bunların hepsi, Görünümler kullanılarak sekmeli tek bir sayfada görüntülenir. Bu yüzden insanların doğrudan "Hakkımızda" düğümüne gitmelerini istemiyorum çünkü diğer sayfaların sekmelerini göremiyorlardı. Aynı zamanda, Google’ın insanlara bu düğüme doğrudan bir bağlantı vermesini istemiyorum, kullanıcıların yalnızca Görünüm (yani, sekme) üzerinden erişebilmesi için erişimi sınırlandırmak istiyorum.

Bu yüzden düğüme erişimi kısıtlamam, Drupal arama sonuçlarından kaldırmam ve Google’ın almadığından emin olmam gerekiyor. Baska öneri?


Şu anda drupal 6 kullanıyorum, ancak 6 ile 7 arasında farklıysa, her ikisine de cevap
vermenin

Yalnızca birkaç düğümden endişe ediyorsanız, neden onları Google aramalarının dışında tutmak için robots.txt dosyasına eklemiyorsunuz?
Tangurena

Bu yaygın bir yanılgıdır. robots.txt, arama motorlarının sitenizi endekslemesini engellemez, arama motorlarının sitenizi taramasını önler . Birisi sitenizdeki bir sayfaya bağlanırsa, Google bağlantıyı takip eder ve isterse sayfayı dizine ekler. Dizin oluşturmayı önlemek istiyorsanız, ROBOTS meta etiketini kullanmanız gerekir, örneğin: <meta name = "ROBOTS" value = "NOINDEX" />
René

Yanıtlar:


28

Bu bana Paneller modülü için iyi bir kullanım örneği gibi geliyor, çünkü düğüm sayfalarını geçersiz kılacak paneller oluşturabilir ve panelin içeriğini, kullanıcıların görmelerini istediğiniz sayfayı görmelerini ve aynı zamanda görmelerini sağlayacak şekilde ayarlayabilirsiniz. İhtiyacınız olursa panel sayfalarına erişim kuralları. Daha fazla bilgi için bu yazıya bakınız.


Bu tam olarak istediğimi yapmak görünüyor ve temiz, basit bir şekilde ... hatta bir öğretici (güzel bağlantı) ile geliyor!
Chaulky

Tavşan Deliği modülü çözümüyle karşılaştırıldığında bu bir eksiklik değil mi? Bunu seçilen cevap haline getiren ilave faydalar var mı?
Mario Awad

1
@MarioAwad Pekala, birincisi, Tavşan Deliği modülü bu soruyu cevapladıktan bir yıldan fazla geçmedi. O zamanlar, Paneller en iyi çözümdü, hala panel montajı yapılmışsa en iyi çözüm olduğunu düşünüyorum, o zaman olmasa da Tavşan Deliği daha iyi bir hafif çözüm olabilirdi.
coderintherye

@nowarninglabel İyi bir ipucu gibi geliyor. Teşekkürler. Belki gelecek açıklama için daha iyi hale getirmek için cevabı bu açıklamayı eklemelisin. Şerefe.
Mario Awad

33

Tavşan Deliği modülü bu özelliği sağlar.

Tavşan Deliği, bir varlık kendi sayfasında görüntülendiğinde ne olması gerektiğini kontrol etme yeteneği ekleyen bir modüldür.

Belki de bir atlıkarıncada görüntülenen bir resim içerik türü gibi, hiçbir zaman kendi sayfasında görüntülenmemesi gereken bir içerik türünüz vardır. Tavşan Deliği, bu düğümün kendi sayfasında, düğüm / xxx aracılığıyla erişilmesini önleyebilir.


Şimdi bir Drupal 6 sürümü var.
mpdonadio

Mükemmel, temiz ve basit bir çözüm.
jamix

1
Nice, bu sadece bu şekilde olduğu gibi bir content_type düğümüne doğrudan erişimi engellemek istiyorsanız panel modülünden daha iyidir (bu kullanım durumu için)!
Larzan,

13

Bir seçenek düğümü asla yayınlamamak olabilir, ancak tüketici sayfasının yayın durumunu görmezden gelmesi olabilir . Bu nedenle, örneğinizde "Hakkında" görünümünüz "About-xxx" düğümlerinin yayınlanma durumunu görmezden gelebilir. Düğümler yayınlanmadığından, yetkili olmayan kullanıcı bunlara erişemez ve arama motoru tarafından dizine alınmamalıdır.

Başka bir çözüm, düğüm sayfasını yetkili olmayan bir kullanıcı tarafından ziyaret edildiğinde ya da yayımlamak için hook_nodeapi('view')/ hook_node_view()uygulamasını kullanmaktır . Unutmayın / birçok durumda kullanılan ve sadece bir düğüm sayfasını görüntülerken edilir.drupal_goto()drupal_access_denied()hook_nodeapi()hook_node_view()

hook_menu_alter()gizli düğümlere erişimi engellemek için düğüm sayfalarının erişim geri çağrısını değiştirmek için de kullanılabilir .

En iyisi muhtemelen filtrelemeyi kodlanmış düğüm kimliğine dayandırmak değil, düğümdeki özel bir alanı (CCK / Alan API veya özel bir tablo kullanarak) veya değişkende saklanan gizli düğümlerin bir listesini kullanmaktır .


@ mongolity404 güzel yazı, iyi bilgi. Birkaç şey için bana fikirler verdi. Peki neden topluluk wiki?
Chaulky

Birisi önerdiğim seçenekler için kod örneği vermek
isteyenler

7

Drupal 7 için, Tavşan Deliği bu özelliği sağlar.

Tavşan Deliği, işletme kendi sayfasında görüntülendiğinde ne olması gerektiğini kontrol etme yeteneği ekleyen bir modüldür.

Bu, işletme kendi sayfasında görüntülendiğinde ne olacağını kontrol etmek için çeşitli seçenekler sağlayarak çalışır. Yeteneğin var

  1. Erişim reddedilen bir sayfa gönderin.

  2. Bir sayfa bulun sayfa bulunamadı.

  3. Herhangi bir yola veya harici URL'ye bir sayfa yönlendirmesi verin.

  4. Ya da sadece varlığı görüntülemek (normal davranış).

Nasıl :

Tavşan Deliği düğümleri alt modülünü etkinleştirin Sonra Drupal CODE'deki her formla ilişkili config bölümünü alacağız


6

Çözüldü. Öncelikle Pierre Buyle'nin cevabını denedim, fakat eğer bir düğümü yayından kaldırırsanız, propper erişimi yapılamaz ve bu düğümler işe yaramaz hale gelir. Benim durumumda ebeveyn ve çocuk düğümleri var, yalnızca çocuk düğümleri (yönetici amaçlı) gizlenecek olanlar ve tarayıcılar tarafından endekslenmeyeceklerdir. Sayfa yöneticisi ile yaptığım şey, http://www.wunderkraut.com/ 1 adresindeki bu tutuşmaya göre http cevabı ile bir http yönelimi olan bir URL yönlendirmesi yaptı (bu düğümleri tüm kullanıcılara ve yöneticiye gizleme) ve tarayıcılar tarafından indekslenmemiş düğümlerin işlenmesi. tarafından Düğüm no-index modülü . Paret-çocuk düğümü ilişkiniz olmasa bile bu işe yarar. Öğreticiye bağlantı:


4

Drupal 7'de, hook_node_access () kullanmak da mümkün olmalıdır , bu, D7'deki tüm düğüm tipleri için tüm modüller tarafından uygulanabilen normal bir kancadır. Daha sonra, kullanıcı düğümü kendi düğümü / nid üzerinde görüntülemeye çalışıyorsa, erişimi reddedebilirsiniz.

Muhtemelen hook_query_node_access_alter () uygulamanız ve düğümü arama sonuçlarında gizlemek için bir kontrol eklemeniz gerekir. Bu bile kendi başına yeterli olabilir ve hook_node_access () 'a ihtiyacınız yoktur. Ve hatta D6'da çalışabilir çünkü sorguyu da değiştirebilirsiniz, ancak sorgu oluşturucu nedeniyle D7'de çok daha kolaydır.


3

Bu düğümü 'yayınlanmamış' olarak ayarlayın, ardından görünümde 'düğüm yayınlandı: hayır' filtresini ekleyin.

Seo notu gibi, bu 'hayalet' düğümleri için özel bir içerik türü oluşturmak için iyi bir uygulamadır ve pathauto'ya onlara özel URL'ler vermelerini söyleyin (kullanıyorum /dev/null/[title-raw]; kullanıyorum): düğüm yayınlanmamış olsa bile, kendi URL URL'sine sahip olacak, bu nedenle, örneğinizde 'hakkımızda' hayalet düğümü ve ardından 'hakkımızda' görüntüleme sayfasını oluşturursanız, ikincisinin url'si hayalet example.com/about-us-0olandan example.com/about-usalınmış olur (ancak yolları el ile ayarlayabilirsiniz)


3

Herhangi bir düğüm erişim sistemi kullanabilir ve görünümleri3 kullanabilirsiniz. Orada, sorgu ayarlarında sql yeniden yazma özelliğini devre dışı bırakamazsınız ve böylece düğüm erişim sistemini bu görünümde devre dışı bırakabilirsiniz.


3

Kural modüllerini kullanarak yapabilirsiniz.
+ "İçerik görüntüleniyor" etkinliği ile yeni kural oluşturun.
+ Örneğin birkaç koşul ekleyin: Kullanıcının rolü var: adsız, Yolun URL'si takma adı var: node / xyz (adsız kullanıcı için sınırlandırmak istediğiniz düğüm budur). Gerekirse "ve" veya "veya" koşulu eklemeyi unutmayın.
+ Başka bir sayfaya yönlendirmek için eylem oluşturun veya başka bir şey yapın. Bu sizin için verdiğim örnek kod.

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

İstediğinizi elde etmenin en kolay yolunun Sayfa yöneticisini kullanmaktır (Ctools), kullanımı gerçekten basittir, yapmanız gereken tek şey hangi düğümü nereye yönlendireceğinizi belirlemektir (bu durumda, bir düğümden diğerine).


2

İçerik Erişim modülü mükemmel gereksinimi uygun olacaktır.

Bu modül, içerik türleri için izinleri role ve yazara göre yönetmenizi sağlar. Her içerik türü için özel görünüm belirlemenizi, düzenlemenizi ve silmenizi sağlar. İsteğe bağlı olarak, içerik erişim ayarları başına etkinleştirebilirsiniz, böylece her içerik düğümü için erişimi özelleştirebilirsiniz.

Ayrıca başlamanıza yardımcı olacak iyi bir belgeye sahiptir .


2

"Dahil edilen içerik" düğümlerinizin erişilmez kalması gerekiyorsa, web sunucusu "konum = / düğüm / *" düzeyinde / düğüm / * engellemeyi düşünün . Varsayılan olarak tüm / düğümlere erişimi reddet. Varsayılan, / pages benzeri bir otomatik oto yolu alan düğümlere erişime izin verir.

(Alt dizinler için temel .htaccess şifresi, harici tarayıcılar tarafından da yanlışlıkla arama endekslemesini engellemenin iyi bir yoludur.)

Bir düğümün gelecekte kurulacak ya da henüz tam olarak anlamadığınız bir katkıda bulunan modül aracılığıyla erişilebilir olmayacağını asla garanti edemezsiniz. (Arama sonuçları, listeler, varsayılan görünümler, taksonomi kategorisine genel bakış ...)

Düğümler bunun için var.

"İçeriğinizin" içeriğinin gizliliği sizin için önemli mi? Eğer öyleyse, o zaman ...

  1. URL’si olan her şey sonunda google tarafından etkilenecektir.

    Çünkü arama motorları yalnız bağlantı örümceklerine güvenmiyor. Ayrıca tarayıcı geribildirimlerini de değerlendirirler. Hiçbir robot.txt veya pathauto, globalredirect, rabbithole modülü huzur içinde uyumanıza yardımcı olmaz. Düğüm erişilebilirse, o zaman dizinlenir. Belki kendi tarayıcınız / eklentileriniz tarafından.

  2. Reconsider "dahil edilecek içerik" eğer gerçekten bir düğüm olmalıdır , kimse bir sayfa olarak erişmek gerekiyorsa ?

    Eğer "dahil edilmiş içeriğiniz" bir mini panel / blok / snippet / bean / ... içerisinde saklanacaksa, listelenme riski çok daha düşüktür, ya da otomatik olarak URL’li bir sayfa olarak görünürsünüz. Henüz bilmiyorum . (taksonomi genel bakış sayfaları, arama, görünümler ...)


0

Sınırla Düğüm Sayfa Görüntüleme modülü tam olarak ne istediğinizi yapar.

Modül tanımından:

Hiç yayınlanmanız gereken bir slayt gösterisi düğüm tipi kullandınız mı, ancak düğümün / XXX yolunu kullanarak düğümün kendi kendine erişilebilir olmasını istemediniz mi? Bu modül tam size göre!

Bu modül ile düğümün fullgörünüm moduna erişimi kısıtlayabilirsiniz , böylece düğüme erişemezsiniz node/XXX.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.