Kutunun dışına drupal, düğüm yoluna atanmış bir sayfa (varsayılan ana sayfadır) ile birlikte gelir .
Kullanıcıların ona ulaşmasını nasıl önleyebilirim ve onları sitenin gerçek ana sayfasına yönlendiririm?
Kutunun dışına drupal, düğüm yoluna atanmış bir sayfa (varsayılan ana sayfadır) ile birlikte gelir .
Kullanıcıların ona ulaşmasını nasıl önleyebilirim ve onları sitenin gerçek ana sayfasına yönlendiririm?
Yanıtlar:
Bu sayfayı gizlemenin kolay bir yolu yok. Kullanmazsanız , hook_menu_alter () özelliğini uygulayabilir ve ya tamamen kaldırabilir ya da erişim geri aramasını ayarlayabilirsiniz FALSE
.
/ Node'dan ön sayfa olarak kullanmak istediğiniz sayfaya yönlendiren bir yol takma adı oluşturun.
Bir hata gösterecek şekilde / node 'un geri çağırmasını değiştirmeyi tercih ederim.
Bu, / düğüme erişirken her zaman özel 404 sayfanızı gösterir.
function yourmodule_menu_alter(&$items) {
$items['node']['page callback'] = 'drupal_not_found';
}
Ben kullanılan Yönlendirme modülü: Sadece yeni bir 301 yönlendirmesi eklendi node
için <front>
.
Berdirs cevabına benzer şekilde, oluşturduğumuz özel bir dağıtımın parçası olan bir modülde bulunan aşağıdaki kodu da sahibim:
function HOOK_menu_alter(&$items) {
$items['node']['page callback'] = '_HOOK_empty_home';
}
function _HOOK_empty_home() {
drupal_set_title('');
return '';
}
Bu şekilde 'düğüm' yolunu ön sayfa olarak tutabilir ve gerekli ön sayfayı oluşturmak için blokları konumlandırmak için bağlamı kullanabilirim.
Benim için kolay çözüm ana sayfa olmak istediğim bir sayfa oluşturmak ve URL'yi / node olarak ayarlamaktı. Sonra / admin / config / system / site bilgisi altında varsayılan ön sayfayı / düğüme ayarlayın. Birisi gerçekten yazmadan URL'yi asla "/ düğümü" göremezsiniz. Ana sayfa URL’nizi / düğüme ayarlamak istemeniz şartıyla, hızlı, kolay ve temiz.
Birden çok şey denedim. Sonra Drupal 7 ve 8 için, herhangi bir kod yazmadan bunu en kolay buldum:
node_page_disable, globalredirect ve yönlendirilen modülleri indirip etkinleştirin.
(Not: node_page_disable modülü yönlendirir / düğüm 404'e hata sayfası bulunamadı.)
sonra / node -> front page için bir yönlendirme ekleyin
Lütfen yönlendirmenin hem / node hem de / node / 'u ön sayfaya yönlendirdiğini unutmayın.
ve okumak için yararlı bir makale: https://www.drupalaid.com/blog/3-things-you-should-hide
drush @example.com views-disable frontpage
kapanacak. Diğer şeyler yapılıncaya kadar yine de bir 404 alacak.
Bir düğüm oluşturun, ardından site yapılandırması -> site bilgileri'ne gidin ve giriş sayfasını düğümün yoluna ayarlayın. Bu yüzden, ilk düğümünüzse, düğüm / 1 olacaktır.
Düzenleme: Varsayılan olarak, yalnızca 'ön sayfaya yükselt' seçeneğini işaretlerseniz, o sayfa bir düğüm oluşturarak kaybolacaktır. Site bilgisi adımı bu düğümü gerçek ön sayfanız yapacaktır.
/node
yine de ulaşılabilir, varsayılan olarak görünmez
Bir sayfayı görüntülemeden önce url'yi kontrol etmek ve kullanıcıları isterseniz başka bir sayfaya yönlendirmek için Kurallar modülünü kullanabilirsiniz .
Oldukça birkaç yıl önce popüler soru, zaten oldukça ilginç cevaplar. Ancak, tahmin et ne oldu: "Bugünlerde bunun için bir modül var ... aslında iki tane bile!" (önceki cevapların hiçbirinde bahsedilmedi).
Daha fazla bilgi için okumaya devam edin ... (alıntılar proje sayfalarındandır) ...
Düğüm sayfası yöneticisi (D6 veya D7):
Bu modül, sayfa erişimini işlemek / düğümlemek için bir yönetim ayarları paneli ekler . Aktive edildiğinde üç olası konfigürasyon vardır:
- Çekirdek - Drupal çekirdek, düğüm sayfası erişimini her zamanki gibi yönetir: 'erişim içeriği' izni olan tüm kullanıcılar
- Devre dışı - Hiç kimse / düğüme erişemez. 'Sayfa bulunamadı' (404) değerini döndürür.
- İzinle - Erişim yeni bir izinle ele alınacaktır: 'erişim düğümü sayfası'
Düğüm Sayfası Devre Dışı Bırak (yalnızca rc2 sürümleri olsa da, D6 veya D7):
Kolay UI erişimi ve kullanılmadığında yolun / düğümün devre dışı bırakılmasını sağlar . Bu, Üretim Kontrol Modülündeki bir güvenlik değerlendirmesinden ilham almıştır .
en iyi yol, düğümleri template_preprocess_page işlevinden gizlemektir
function template_preprocess_page(&$variables) {
if ($variables['is_front'] == 1) {
if (isset($variables['page']['content']['system_main'])) {
unset($variables['page']['content']['system_main']);
}
}
}