web-gelistirme-sc.com

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

Başka bir yerde görüntülenecek, ancak doğrudan görüntülenmemesi gereken içeriği içeren bir düğüme sahip olduğum zamanlar olduğunu gördüm. Yani, hiç kimse düğüme/1234'e gitmemelidir, ancak düğüm 1234'teki içerik başka bir yerde görüntülenmelidir. Örneğin, görünümleri kullanarak sekmeli içerikli bir sayfa oluşturuyorum. Yani "Hakkımda", "Hakkımızda" ve "Hakkımda" sayfaları var. Bunların tümü Görünümler kullanılarak sekmelerle birlikte tek bir sayfada görüntülenir. Bu yüzden insanların doğrudan "Hakkımızda" düğümüne ulaşmasını istemiyorum çünkü o zaman diğer sayfaların sekmelerini görmezlerdi. 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) aracılığıyla erişebilmeleri için erişimi sınırlandırmak istiyorum.

Bu nedenle, düğüme erişimi kısıtlamam, Drupal arama sonuçlarından kaldırmam ve Google'ın onu almadığından emin olmalıyım.

49
Chaulky

Bu bana Paneller modülü için iyi bir kullanım durumu gibi geliyor, çünkü düğüm sayfalarını geçersiz kılacak paneller oluşturabilir ve panelin içeriğini kullanıcıların istediğiniz sayfayı görmesini garanti edecek şekilde ayarlayabilirsiniz görmeniz ve panel sayfalarına ihtiyacınız varsa erişim kurallarını görmeniz gerekir. Daha fazla ayrıntı için bkz. bu yazı d.o.

27
coderintherye

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 olacağını kontrol etme yeteneğini ekleyen bir modüldür.

Belki de, bir karuselde görüntülenen resim içerik türü gibi, asla 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şilebilir olmasını engelleyebilir.

32
Pierre Buyle

Bir seçenek düğümü asla yayınlamamak olabilir, ancak tüketici sayfasının yayın durumlarını yoksaymasını sağlamak olabilir. Örneğinizde, "Hakkında" görünümünüz "Hakkında-xxx" düğümlerinizin yayınlanma durumunu yoksayabilir. Düğümler yayınlanmadığından, yetkisiz kullanıcı bunlara erişemez ve arama motoru tarafından dizine eklenmemelidir.

Başka bir çözüm, hook_nodeapi('view') / hook_node_view() uygulamasını bir drupal_goto() vermek için kullanmaktır veya drupal_access_denied() , düğüm sayfası yetkisiz bir kullanıcı tarafından ziyaret edildiğinde. hook_nodeapi() / hook_node_view() 'ın yalnızca bir düğüm sayfasını görüntülerken değil, birçok durumda kullanıldığını unutmayın.

hook_menu_alter() , gizli gizli düğümleri.

En iyisi, filtrelemeyi sabit kodlu düğüm kimliğine dayandırmak değil, düğümde özel bir alan (CCK/Alan API'sı veya özel bir tablo kullanarak) veya gizli bir liste kullanmaktır düğümler bir değişkende saklanır .

12
Pierre Buyle

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

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

Bu, varlık kendi sayfasında görüntülendiğinde ne olacağını kontrol etmek için birden fazla seçenek sunarak çalışır. Yeteneğine sahipsin

  1. Erişim engellendi sayfasına teslim edin.

  2. Sayfa bulunamadı sayfasını teslim edin.

  3. Herhangi bir yola veya harici URL'ye sayfa yönlendirmesi yapın.

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

Nasıl :

Etkinleştir Tavşan Deliği düğümleri alt modül Sonra Drupal [~ # ~] kod [~ # ~] içindeki her formla ilişkili yapılandırma bölümünü alacağız.

6
niksmac

Çözüldü. İlk olarak Pierre Buyle yanıtını denedim, ancak bir düğümü yayından kaldırırsanız, propper'a erişilemez ve bu düğümler işe yaramaz hale gelir. Benim durumumda üst ve alt düğümlerim var, yalnızca alt düğümler (yönetici amaçlı) gizlenecek ve tarayıcılar tarafından dizine eklenmeyecek olanlardır. Ne sayfa yöneticisi ile yaptım http://www.wunderkraut.com/ (tarafından http://www.wunderkraut.com/1 ve tarayıcılar tarafından dizinsiz düğümler Düğüm dizinsiz olarak işlenir modül . Paret-child düğüm ilişkiniz olmasa bile bu işe yarar. Eğiticiye bağlantı:

5
pinueve

Drupal 7'de hook_node_access () kullanmak da mümkün olmalıdır, bu D7'de 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ünde/nid'de görüntülemeye çalışıyorsa erişimi reddedebilirsiniz.

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

3
Berdir

Bu düğümü 'yayınlanmadı' olarak ayarlamanız yeterlidir, daha sonra görünümde 'yayımlanan düğüm: hayır' filtresini ekleyin.

Seo notu olarak, bu 'hayalet' düğümleri için özel bir içerik türü oluşturmak ve pathauto'ya belirli URL'leri vermelerini söylemek için iyi bir uygulamadır (i /dev/null/[title-raw];) Kullanın: düğüm yayınlanmamış olsa bile, kendi URL takma adınız varsa, bu nedenle örneğinizde önce 'hakkımızda' hayalet düğümü ve sonra 'hakkımızda' görünüm sayfası oluşturursanız, ikincinin URL'si example.com/about-us-0 becose example.com/about-us hayalet olandan alınmıştır (ancak yolları manuel olarak ayarlayabilirsiniz)

2
Strae

Kural modüllerini kullanarak yapabilirsiniz.
+ "İçerik görüntülendi" etkinliğiyle yeni kural oluştur.
+ Birkaç koşul ekleyin örneğin: Kullanıcının rolü: anonim, Yol URL takma adı: düğüm/xyz (bu, anonim kullanıcı için sınırlamak istediğiniz düğümdür). Gerekirse "ve" veya "veya" koşulunu eklemeyi unutmayın.
+ Başka bir sayfaya yönlendirmek veya başka bir şey yapmak için işlem oluşturun. Bu sizin için ihraç ettiğ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
Stone Vo

Her türlü düğüm erişim sistemini kullanabilir ve görünümleri kullanabilirsiniz3. Burada sorgu ayarlarında sql yeniden yazmayı devre dışı bırakamazsınız ve bu nedenle düğüm erişim sistemini bu görünümde devre dışı bırakabilirsiniz.

2
Daniel Wehner

İstediğinizi başarmanın en kolay yolunun Sayfa yöneticisini (Ctools) kullanmak olduğunu, kullanımı gerçekten basit olduğunu, tek yapmanız gereken hangi düğümü nereye yönlendireceğinizi belirtmektir (bu durumda, bir düğümden diğerine)

1
Nicolas_ii

Content Access modülü gereksiniminizi mükemmel şekilde karşılar.

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, düzenleme ve silme izinleri belirlemenizi sağlar. İsteğe bağlı olarak her içerik erişimi ayarını etkinleştirebilirsiniz, böylece her içerik düğümü için erişimi özelleştirebilirsiniz.

Ayrıca, başlamanıza yardımcı olacak bir iyi dokümantasyon değerine sahiptir.

1
AjitS

"Dahil edilen içerik" düğümlerinize erişilemez kalması gerekiyorsa, webserver "location =/node/*" level üzerindeki engellemeyi/düğümü/* kullanmayı düşünün. Varsayılan olarak tüm/düğümlere erişimi reddet. Varsayılan,/pages gibi bir yol-otomatik yol alan düğümlere erişime izin verir.

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

Bir düğümün, gelecekte yüklenecek olan katkıda bulunan bir modül veya henüz tam olarak anlamadığınız bir modül aracılığıyla erişilemeyeceğini asla garanti edemezsiniz. (Arama sonuçları, listeler, varsayılan görünümler, sınıflandırma kategorisine genel bakış ...)

Düğümler bunun içindir.

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

  1. RL'si olan her şey, sonunda Google tarafından vurulacaktır.

    Çünkü arama motorları sadece bağlantı örümceklerine güvenmiyor. Ayrıca tarayıcı geri bildirimlerini vb. Değerlendirir. Hiçbir robot.txt veya pathauto, globalredirect, tavşan deliği modülü huzur içinde uyumanıza yardımcı olmaz. Düğüme erişilebiliyorsa, dizine eklenir. Belki kendi tarayıcınız/eklentileriniz tarafından.

  2. "Dahil edilecek içeriğin" gerçekten bir düğüm olması gerekip gerekmediğini yeniden düşünün, , hiç kimse bir sayfaya sayfa olarak erişemezse ?

    "Dahil edilen içeriğiniz" bir mini panel/blok/snippet/bean/... içinde depolanacaksa, listelenme veya daha önce bir sayfa olarak görünme riski çok düşüktür henüz bilmediğiniz otomatik bir URL ile . (sınıflandırmaya genel bakış sayfaları, arama, görünümler ...)

1
user18099

Restrict Node Sayfa Görünümü modülü tam olarak istediğinizi yapar.

Modül açıklamasından:

Hiç yayınlamanız gereken bir slayt gösterisi nodetype kullandınız, ancak düğümün daha sonra düğüm/XXX yolunu kullanarak erişilebilir olmasını istemiyor musunuz? Bu modül tam size göre!

Bu modülle düğümün full görüntüleme moduna erişimi kısıtlayabilirsiniz, böylece node/XXX.

0
user72672