Drupal из коробки поставляется со страницей (которая является домашней страницей по умолчанию), которая назначена пути узла .
Как мне избежать того, чтобы пользователи достигли этого, и перенаправить их на реальную домашнюю страницу сайта?
Drupal из коробки поставляется со страницей (которая является домашней страницей по умолчанию), которая назначена пути узла .
Как мне избежать того, чтобы пользователи достигли этого, и перенаправить их на реальную домашнюю страницу сайта?
Ответы:
Нет простого способа скрыть эту страницу. Если вы не используете его, вы можете реализовать hook_menu_alter () и либо полностью удалить его, либо установить для него обратный вызов доступа FALSE
.
Создайте псевдоним пути, который перенаправляет с / узла на страницу, которую вы хотите использовать в качестве главной страницы.
Я предпочитаю изменять обратный вызов страницы / узла, чтобы он отображал ошибку 404 Page.
Это всегда показывает вашу пользовательскую страницу 404 при доступе к / узлу.
function yourmodule_menu_alter(&$items) {
$items['node']['page callback'] = 'drupal_not_found';
}
Как и в ответе berdirs, у меня есть следующий код, включенный в модуль, который является частью пользовательского дистрибутива, из которого мы строим:
function HOOK_menu_alter(&$items) {
$items['node']['page callback'] = '_HOOK_empty_home';
}
function _HOOK_empty_home() {
drupal_set_title('');
return '';
}
Таким образом, я могу сохранить путь «узла» в качестве главной страницы и использовать контекст для позиционирования блоков для создания необходимой главной страницы.
Самым простым решением для меня было создать страницу, которую я хотел сделать домашней страницей, и задать URL-адрес / node. Затем в / admin / config / system / site-information установите главную страницу по умолчанию на / node. Вы никогда не увидите «/ node» в URL, если кто-то не введет его. Это быстро, легко и чисто, если вы хотите установить URL-адрес своей домашней страницы в / node.
Я пробовал несколько вещей. Затем для Drupal 7 и 8 я обнаружил, что это проще всего без написания кода:
загрузите и включите модули node_page_disable, globalredirect и redirect.
(Примечание: модуль node_page_disable перенаправляет / узел на 404 не найденную страницу ошибки.)
затем добавьте редирект для / узла -> первая страница
Обратите внимание, что перенаправление перенаправляет как / узел, так и / узел / на первую страницу.
и полезную статью для чтения: https://www.drupalaid.com/blog/3-things-you-should-hide
drush @example.com views-disable frontpage
выключит его. Будет по-прежнему получать 404, хотя, пока другие вещи не будут сделаны.
Создайте узел, затем перейдите в раздел конфигурации сайта -> информация о сайте и установите на домашней странице путь к узлу. Так что, если это ваш первый узел, это будет узел / 1.
Редактировать: по умолчанию, просто создав узел, эта страница исчезнет, если вы установите флажок «перейти на первую страницу». Шаг информации о сайте сделает этот узел вашей главной страницей.
/node
все еще может быть достигнуто, это просто не будет видно по умолчанию
Вы можете использовать модуль « Правила », чтобы проверить URL перед просмотром страницы и перенаправить пользователей на другую страницу, если хотите.
Популярный вопрос, возникший несколько лет назад, с довольно интересными ответами. Тем не менее, угадайте, что: «В эти дни есть модуль для него ... на самом деле даже два!» (не упоминается ни в одном из предыдущих ответов).
Читайте дальше для получения более подробной информации ... (цитаты взяты из страниц проекта) ...
Администратор страницы узла (D6 или D7):
Этот модуль добавляет панель настроек администрирования для управления доступом к странице / узлу . Как только он активирован, есть три возможных конфигурации:
- Ядро - ядро Drupal будет обрабатывать доступ к странице узла как обычно: все пользователи с правами доступа к контенту
- Отключено - никто не сможет получить доступ к / узлу. Будет возвращено «Страница не найдена» (404).
- По разрешению - доступ будет обрабатываться новым разрешением: «страница узла доступа»
Отключить страницу узла (D6 или D7, хотя только в версиях rc2):
Позволяет легкий доступ к пользовательскому интерфейсу и отключение пути / узла, когда он не используется. Это было вдохновлено соображениями безопасности в модуле проверки производства .