Как скрыть страницу/узел по умолчанию?


Drupal из коробки поставляется со страницей (которая является домашней страницей по умолчанию), которая назначена пути узла.

Как мне избежать доступа пользователей к нему и перенаправить их на фактическую домашнюю страницу сайта?

Author: kiamlaluno, 2011-03-21

14 answers

Нет простого способа скрыть эту страницу. Если вы его не используете, вы можете реализовать hook_menu_alter() и либо полностью удалить его, либо установить для него обратный вызов доступа FALSE.

 17
Author: Berdir, 2012-06-12 14:57:05

Создайте псевдоним пути, который перенаправляет с /узла на страницу, которую вы хотите использовать в качестве главной страницы.

 9
Author: kiamlaluno, 2011-03-22 00:10:46

Я предпочитаю изменить обратный вызов страницы /узла, чтобы он отображал страницу с ошибкой 404.
Это всегда показывает вашу пользовательскую страницу 404 при доступе к /узлу.

function yourmodule_menu_alter(&$items) {
    $items['node']['page callback'] = 'drupal_not_found';      
}
 6
Author: Marc Bachmann, 2012-04-07 09:44:16
<?php
function MY_MODULE_menu_alter(&$callbacks) {
unset($callbacks['node']);
}
?>

Или добавьте это в settings.php (URL-адрес входящего материала)

<?php
function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  if ($path == 'node') {
    $result = ''; 
  }
}
?>
 4
Author: AyeshK, 2012-01-13 20:07:36

Я использовал модуль Перенаправление : Я только что добавил новый 301 перенаправление с node на <front>.

 2
Author: ACD, 2015-02-19 17:22:52

Аналогично ответу бердира, у меня есть следующий код, включенный в модуль, который является частью пользовательского дистрибутива, из которого мы строим:

function HOOK_menu_alter(&$items) {
  $items['node']['page callback'] = '_HOOK_empty_home';
}

function _HOOK_empty_home() {
  drupal_set_title('');
  return '';
}

Таким образом, я могу сохранить путь "узел" в качестве главной страницы и использовать контекст для размещения блоков для создания требуемой главной страницы.

 1
Author: Decipher, 2011-03-23 02:44:21

Вы можете создать страницу, сопоставленную с /узлом, которая не опубликована. Таким образом, пользователи, которые вызовут этот путь, будут иметь доступ к запрещенной странице

 1
Author: pitop, 2011-05-26 12:42:55

Простым решением для меня было создать страницу, которую я хотел бы сделать домашней страницей, и установить URL в /узел. Затем в разделе /администратор/конфигурация/система/информация о сайте установите для главной страницы по умолчанию значение /узел. Вы никогда не увидите "/узел" в URL-адресе, если только кто-то действительно не введет его. Это быстро, легко и чисто, при условии, что вы хотите установить URL-адрес своей домашней страницы в /узел.

 1
Author: Jack McKenzie, 2011-06-21 23:25:22

Вы можете создать новую страницу с URL-адресом узла, и люди смогут увидеть сообщение, перенаправляющее их на главную страницу или выбирающее категорию чего-либо.

 1
Author: Mario, 2012-07-19 19:57:02

Я перепробовал несколько вещей. Затем для Drupal 7 и 8 я обнаружил, что это проще всего, без написания какого-либо кода:

Загрузите и включите модули node_page_disable, globalredirect и перенаправления.

(Примечание: модуль node_page_disable перенаправляет /узел на страницу 404 не найдена ошибка.)

Затем добавьте перенаправление для /узла -->главная страница

Пожалуйста, обратите внимание, что перенаправление перенаправляет как /узел, так и /узел/ на главную страницу.

И полезная статья для читать: https://www.drupalaid.com/blog/3-things-you-should-hide

 1
Author: Kasım Burak Özdemir, 2016-11-21 08:51:59

Создайте узел, затем перейдите в раздел конфигурация сайта -> информация о сайте и установите на домашней странице путь к узлу. Поэтому, если это ваш первый узел, это будет узел/1.

Изменить: По умолчанию, просто создав узел, эта страница исчезнет, если вы установите флажок "продвигать на главную страницу". Шаг "Информация о сайте" сделает этот узел вашей фактической главной страницей.

 0
Author: Mike L., 2011-03-21 19:22:13

Вы можете использовать модуль Правила для проверки URL-адреса перед просмотром страницы и перенаправления пользователей на другую страницу, если хотите.

  • Добавить правило с событием: Содержимое будет просмотрено
  • Добавить условие: Выполнить пользовательский PHP-код и проверить путь
  • Добавьте действие: Перенаправление страницы и выберите путь, на который вы хотите перенаправить
 0
Author: Laxman13, 2011-03-22 01:57:25

Популярный вопрос, заданный несколько лет назад, с уже довольно интересными ответами. Однако, угадайте, что: "В наши дни для этого есть модуль... на самом деле даже два!" (не упоминалось ни в одном из предыдущих ответов).

Читайте дальше для получения более подробной информации... (цитаты взяты со страниц их проектов)...

Администратор страницы узла ( либо D6, либо D7):

Этот модуль добавляет панель настроек администрирования для обработки / узел доступ к странице. Как только это произойдет активировано есть три возможные конфигурации:

  • Ядро - ядро Drupal будет обрабатывать доступ к странице узла как обычно: все пользователи с разрешением "доступ к контенту"
  • Отключено - Никто не сможет получить доступ к /узлу. Он вернет "Страница не найдена' (404).
  • По разрешению - Доступ будет обрабатываться новым разрешением: "страница узла доступа"

Отключить страницу Узла ( либо D6, либо D7, хотя только версии rc2):

Обеспечивает простой пользовательский интерфейс доступ и отключение пути / узел когда не используется. Это было вызвано соображениями безопасности в модуле проверки производства .

 0
Author: Pierre.Vriens, 2020-06-15 09:13:00

Лучший способ - скрыть узлы от функции template_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']);
        }
    }
}
 -1
Author: Serg Kushch, 2012-01-13 13:19:03