Saya telah menemukan bahwa ada kalanya saya memiliki simpul yang hanya berisi konten yang akan ditampilkan di tempat lain, tetapi tidak boleh dilihat secara langsung. Artinya, tidak ada yang harus pergi ke node / 1234, tetapi konten di node 1234 harus ditampilkan di tempat lain. Misalnya, saya membuat halaman tentang dengan konten tab menggunakan tampilan. Jadi ada halaman "Tentang Saya", "Tentang Kami" dan "Tentang Mereka". Semua ini ditampilkan dalam satu halaman dengan tab menggunakan Tampilan. Jadi saya tidak ingin orang langsung masuk ke simpul "Tentang Kami" karena mereka tidak akan melihat tab untuk halaman lain. Pada saat yang sama, saya tidak ingin Google memberi orang tautan langsung ke simpul ini, saya ingin membatasi akses sehingga pengguna hanya dapat mengaksesnya melalui Tampilan (yaitu, tab).
Jadi saya perlu membatasi akses ke node, menghapusnya dari hasil pencarian Drupal, dan memastikan Google tidak mengambilnya. Ada saran?
Jawaban:
Bagi saya ini kedengarannya seperti kasus penggunaan yang baik untuk modul Panel karena Anda dapat membuat panel yang akan mengesampingkan halaman node, dan dapat mengatur konteks untuk panel dengan cara harus menjamin pengguna melihat halaman yang Anda ingin mereka lihat serta aturan akses untuk halaman panel jika Anda membutuhkannya. Untuk detail lebih lanjut, lihat posting ini di do
sumber
The Rabbit Hole modul menyediakan fitur ini.
sumber
Salah satu opsi mungkin untuk tidak pernah mempublikasikan node tetapi membiarkan halaman konsumen mengabaikan status publikasi mereka. Jadi, dalam contoh Anda, tampilan "Tentang" Anda mungkin mengabaikan status publikasi dari simpul "Tentang-xxx" Anda. Karena node tidak dipublikasikan, pengguna yang tidak diotorisasi tidak dapat mengaksesnya dan tidak boleh diindeks oleh mesin pencari.
Solusi lain adalah dengan menggunakan
hook_nodeapi('view')
/hook_node_view()
implementasi untuk mengeluarkandrupal_goto()
ataudrupal_access_denied()
ketika halaman node dikunjungi oleh pengguna yang tidak resmi. Sadarilah bahwahook_nodeapi()
/hook_node_view()
digunakan dalam banyak kasus dan tidak hanya saat melihat halaman simpul.hook_menu_alter()
juga dapat digunakan untuk mengubah akses balik halaman node untuk menolak akses ke node tersembunyi .Yang terbaik mungkin bukan mendasarkan pemfilteran pada ID node yang dikodekan tetapi menggunakan bidang khusus pada node (menggunakan CCK / Field API atau tabel kustom) atau daftar node tersembunyi yang disimpan dalam variabel .
sumber
Untuk Drupal 7, Lubang Kelinci menyediakan fitur ini.
Bagaimana cara:
Aktifkan submodule node Lubang Kelinci Kemudian kita akan mendapatkan bagian konfigurasi yang terkait dengan setiap formulir dalam KODE Drupal
sumber
Terpecahkan. Pertama saya mencoba jawaban Pierre Buyle, tetapi jika Anda membatalkan penerbitan suatu simpul, itu tidak dapat diakses dengan benar dan simpul-simpul itu menjadi tidak berguna. Dalam kasus saya, saya memiliki simpul orang tua dan anak, hanya simpul anak (untuk keperluan admin) yang harus disembunyikan dan TIDAK diindeks oleh crawler. Apa yang saya lakukan dengan pengelola halaman membuat url redirect (menyembunyikan simpul-simpul ini ke semua pengguna kecuali admin) dengan respons http sesuai dengan tuturial ini oleh http://www.wunderkraut.com/ 1 dan tidak ada indeks indeks oleh crawler yang di-handlel. oleh Node no-index module . Ini akan berfungsi bahkan jika Anda tidak memiliki hubungan simpul paret-child. Tautan ke tutorial:
sumber
Dalam Drupal 7, seharusnya juga dimungkinkan untuk menggunakan hook_node_access () , ini adalah pengait normal di D7 yang dapat diimplementasikan oleh semua modul untuk semua jenis simpul. Kemudian Anda dapat menolak akses jika pengguna mencoba untuk melihat simpul pada simpulnya sendiri / nid.
Anda mungkin juga perlu mengimplementasikan hook_query_node_access_alter () dan menambahkan tanda centang di sana untuk menyembunyikan simpul di hasil pencarian. Ini bahkan mungkin sudah cukup untuk itu sendiri dan Anda tidak perlu hook_node_access (). Dan itu bahkan mungkin bekerja di D6 karena Anda dapat mengubah kueri di sana juga, tetapi itu jauh lebih mudah di D7 karena pembuat kueri.
sumber
Cukup setel simpul itu sebagai 'tidak diterbitkan', kemudian, dalam tampilan tambahkan filter 'simpul yang diterbitkan: tidak'.
Sebagai catatan seo, adalah praktik yang baik untuk membuat tipe konten khusus untuk simpul 'hantu' tersebut, dan memberi tahu pathauto untuk memberi mereka url spesifik (saya gunakan
/dev/null/[title-raw]
;): bahkan jika node tidak dipublikasikan, ia akan memiliki alias url sendiri, jadi dalam contoh Anda jika Anda membuat pertama simpul hantu 'tentang kami', dan kemudian halaman tampilan 'tentang kami', url kedua akan diambilexample.com/about-us-0
karenaexample.com/about-us
telah diambil dari hantu itu (namun, Anda dapat mengatur jalur secara manual)sumber
Anda bisa menggunakan segala jenis sistem akses-simpul dan menggunakan views3. Di sana Anda tidak dapat menonaktifkan sql menulis ulang pada pengaturan permintaan dan sehingga Anda dapat menonaktifkan sistem akses node pada tampilan ini.
sumber
Anda dapat melakukannya dengan menggunakan modul aturan.
+ Buat aturan baru dengan acara "Konten dilihat".
+ Tambahkan beberapa kondisi sebagai contoh: Pengguna memiliki peran: anonim, Path memiliki URL alias: node / xyz (ini adalah simpul yang ingin Anda batasi untuk pengguna anonim). Ingat menambahkan "dan" atau "atau" kondisi jika diperlukan.
+ Buat tindakan untuk mengalihkan ke halaman lain atau melakukan sesuatu yang lain. Ini adalah kode sampel yang saya ekspor untuk Anda
sumber
Saya pikir cara termudah untuk mencapai apa yang Anda inginkan adalah dengan menggunakan Page manager (Ctools), benar-benar mudah digunakan, yang harus Anda lakukan adalah menentukan node mana yang akan dialihkan di mana (dalam hal ini, dari satu node ke yang lain)
sumber
The Access Content modul akan sesuai kebutuhan Anda dengan sempurna.
Ini juga memiliki dokumentasi yang bagus untuk membantu Anda memulai.
sumber
Jika Anda "konten termasuk" node perlu tinggal tidak dapat diakses, maka pertimbangkan memblokir / node / * pada webserver "Lokasi = / node / *" tingkat . Default tolak akses ke semua / node. Default memungkinkan akses ke node yang menerima path-auto path like / pages.
(Kata sandi .htaccess dasar untuk subdirektori juga merupakan cara yang layak untuk memblokir pengindeksan pencarian tidak disengaja oleh crawler eksternal.)
Anda tidak pernah dapat menjamin bahwa suatu node tidak akan dapat diakses melalui modul kontribusi yang kebetulan diinstal di masa depan, atau yang belum Anda pahami sepenuhnya. (Hasil pencarian, daftar, tampilan default, ikhtisar kategori taksonomi ...)
Ini adalah tujuan dari node.
Apakah privasi "konten yang disertakan" Anda itu penting bagi Anda? Jika demikian, maka ...
Segala sesuatu yang memiliki URL pada akhirnya akan terkena google.
Karena mesin pencari tidak mengandalkan tautan laba-laba saja. Mereka juga mengevaluasi umpan balik peramban dll. Tidak ada robot.txt, atau pathauto, globalredirect, modul rabbithole akan membantu Anda tidur dengan tenang. Jika node dapat diakses, maka itu akan diindeks. Mungkin oleh browser / addons Anda sendiri.
Mempertimbangkan kembali jika "konten yang akan dimasukkan" harus benar-benar menjadi simpul , jika tidak ada yang mengaksesnya sebagai halaman ?
Jika "konten yang disertakan" Anda akan disimpan di dalam mini-panel / blok / snippet / bean / ..., maka Anda berada pada risiko yang jauh lebih rendah dari yang pernah terdaftar, atau pernah muncul sebagai halaman dengan URL otomatis Anda belum tahu tentang . (halaman ikhtisar taksonomi, pencarian, tampilan ...)
sumber
The Membatasi Node Page View modul tidak persis apa yang Anda inginkan.
Dari deskripsi modul:
Dengan modul ini, Anda dapat membatasi akses ke
full
mode tampilan simpul , sehingga Anda tidak dapat mengakses simpul tersebutnode/XXX
.sumber