Drupal po wyjęciu z pudełka zawiera stronę (która jest domyślną stroną główną) przypisaną do ścieżki do węzła .
Jak mogę uniknąć, aby użytkownicy do niego dotarli i przekierowali ich na rzeczywistą stronę główną witryny?
Drupal po wyjęciu z pudełka zawiera stronę (która jest domyślną stroną główną) przypisaną do ścieżki do węzła .
Jak mogę uniknąć, aby użytkownicy do niego dotarli i przekierowali ich na rzeczywistą stronę główną witryny?
Odpowiedzi:
Nie ma łatwego sposobu na ukrycie tej strony. Jeśli go nie używasz, możesz zaimplementować hook_menu_alter () i albo całkowicie go usunąć, albo ustawić wywołanie zwrotne dostępu na FALSE
.
Utwórz alias ścieżki, który przekierowuje z / node do strony, której chcesz użyć jako strony głównej.
Wolę zmienić wywołanie zwrotne strony dla / node, aby wyświetlał błąd 404 Page.
To zawsze pokazuje twoją niestandardową stronę 404 podczas uzyskiwania dostępu / węzła.
function yourmodule_menu_alter(&$items) {
$items['node']['page callback'] = 'drupal_not_found';
}
Użyłem modułu przekierowania : właśnie dodałem nowe przekierowanie 301 z node
do <front>
.
Podobnie do odpowiedzi berdirs, mam następujący kod zawarty w module będącym częścią niestandardowej dystrybucji, z której budujemy:
function HOOK_menu_alter(&$items) {
$items['node']['page callback'] = '_HOOK_empty_home';
}
function _HOOK_empty_home() {
drupal_set_title('');
return '';
}
W ten sposób mogę zachować ścieżkę „węzła” jako pierwszej strony i użyć kontekstu do pozycjonowania bloków w celu zbudowania wymaganej pierwszej strony.
Łatwym rozwiązaniem było dla mnie utworzenie strony, którą chciałbym być stroną główną i ustawienie adresu URL na / node. Następnie w / admin / config / system / site-information ustaw domyślną stronę główną na / node. Nigdy nie widzisz „/ node” w adresie URL, chyba że ktoś faktycznie go wpisze. Jest szybki, łatwy i czysty, pod warunkiem, że chcesz ustawić adres URL strony głównej na / node.
Próbowałem wielu rzeczy. Potem dla Drupala 7 i 8 stwierdziłem, że jest to najłatwiejsze, bez pisania kodu:
pobierz i włącz moduły node_page_disable, globalredirect i redirect.
(Uwaga: moduł przekierowuje węzeł / strona_disable / węzeł do strony błędu 404 nie znaleziono).
następnie dodaj przekierowanie dla / node -> pierwszej strony
Pamiętaj, że przekierowanie przekierowuje zarówno / node, jak i / node / na pierwszą stronę.
i przydatny artykuł do przeczytania: https://www.drupalaid.com/blog/3-things-you-should-hide
drush @example.com views-disable frontpage
go wyłączy. Nadal dostanie 404, dopóki nie skończą się inne rzeczy.
Utwórz węzeł, a następnie przejdź do konfiguracji witryny -> informacje o witrynie i ustaw stronę główną na ścieżkę do węzła. Więc jeśli jest to twój pierwszy węzeł, będzie to węzeł / 1.
Edycja: Domyślnie po utworzeniu węzła ta strona zniknie, jeśli zaznaczysz „awans do pierwszej strony”. Krok informacji o witrynie sprawi, że ten węzeł stanie się faktyczną stroną główną.
/node
wciąż można go osiągnąć, po prostu domyślnie nie będzie widoczny
Możesz użyć modułu Reguły , aby sprawdzić adres URL przed wyświetleniem strony i przekierować użytkowników na inną stronę, jeśli chcesz.
Popularne pytanie sprzed kilku lat, z kilkoma interesującymi odpowiedziami. Jednak zgadnij, co: „Obecnie jest na to moduł… właściwie nawet dwa!” (nie wymienione w żadnej z wcześniejszych odpowiedzi).
Czytaj dalej, aby uzyskać więcej informacji ... (cytaty pochodzą ze stron ich projektów) ...
Administrator strony węzła (D6 lub D7):
Ten moduł dodaje panel ustawień administracyjnych do obsługi dostępu do strony / węzła . Po aktywacji dostępne są trzy możliwe konfiguracje:
- Rdzeń - Rdzeń Drupal jak zwykle będzie obsługiwał dostęp do stron węzłów: wszyscy użytkownicy z uprawnieniami do „dostępu do treści”
- Wyłączone - nikt nie będzie mógł uzyskać dostępu / węzła. Zwróci „Nie znaleziono strony” (404).
- Za zgodą - dostęp będzie obsługiwany przez nowe uprawnienie: „strona węzła dostępu”
Wyłączenie strony węzła (D6 lub D7, choć tylko wersje rc2):
Umożliwia łatwy dostęp do interfejsu użytkownika i wyłączanie ścieżki / węzła, gdy nie jest używany. Zostało to zainspirowane względami bezpieczeństwa w module kontroli produkcji .
najlepszym sposobem jest ukrycie węzłów przed funkcją page_preprocess_page
function template_preprocess_page(&$variables) {
if ($variables['is_front'] == 1) {
if (isset($variables['page']['content']['system_main'])) {
unset($variables['page']['content']['system_main']);
}
}
}