Drupal viene con una página (que es la página de inicio predeterminada) que se asigna a la ruta del nodo .
¿Cómo evito que los usuarios lleguen a él y los redirija a la página de inicio real del sitio?
Drupal viene con una página (que es la página de inicio predeterminada) que se asigna a la ruta del nodo .
¿Cómo evito que los usuarios lleguen a él y los redirija a la página de inicio real del sitio?
Respuestas:
No hay una manera fácil de ocultar esa página. Si no lo usa, puede implementar hook_menu_alter () y eliminarlo por completo o establecer su devolución de llamada de acceso en FALSE
.
Cree un alias de ruta que redirija desde / nodo a la página que desea usar como portada.
Prefiero alterar la devolución de llamada de la página / nodo para que muestre un error 404 Página.
Esto siempre muestra su página 404 personalizada cuando accede a / node.
function yourmodule_menu_alter(&$items) {
$items['node']['page callback'] = 'drupal_not_found';
}
Similar a la respuesta de Berdirs, tengo el siguiente código incluido en un módulo que es parte de una distribución personalizada a partir de la cual construimos:
function HOOK_menu_alter(&$items) {
$items['node']['page callback'] = '_HOOK_empty_home';
}
function _HOOK_empty_home() {
drupal_set_title('');
return '';
}
De esa manera, puedo mantener la ruta del 'nodo' como página de inicio y usar el contexto para colocar bloques para construir la página de inicio requerida.
La solución fácil para mí fue crear una página que quería que fuera la página de inicio y establecer la URL en / nodo. Luego, en / admin / config / system / site-information establezca la página principal predeterminada en / node. Nunca verá "/ nodo" en la URL a menos que alguien realmente lo escriba. Es rápido, fácil y limpio, siempre que desee establecer la URL de su página de inicio en / nodo.
Intenté varias cosas. Luego, para Drupal 7 y 8, encontré que esto es más fácil, sin escribir ningún código:
descargue y habilite los módulos node_page_disable, globalredirect y redirect.
(Nota: el módulo node_page_disable redirige / nodo a la página de error 404 no encontrado).
luego agregue una redirección para / nodo -> portada
Tenga en cuenta que la redirección redirige tanto / node como / node / a la página principal.
y un artículo útil para leer: https://www.drupalaid.com/blog/3-things-you-should-hide
drush @example.com views-disable frontpage
lo que la desactivará. Sin embargo, obtendrá un 404 hasta que se hagan las otras cosas.
Cree un nodo, luego vaya a configuración del sitio -> información del sitio y configure la página de inicio en la ruta del nodo. Entonces, si es su primer nodo, sería node / 1.
Editar: de forma predeterminada, solo al crear un nodo esa página desaparecerá si marca 'promover a la página principal'. El paso de información del sitio hará que ese nodo sea su página principal real.
/node
aún se puede llegar, simplemente no será visible por defecto
Puede usar el módulo Reglas para verificar la URL antes de ver una página y redirigir a los usuarios a otra página si lo desea.
Pregunta popular de hace algunos años, con algunas respuestas interesantes. Sin embargo, adivina qué: "En estos días hay un módulo para él ... ¡incluso dos!" (no mencionado en ninguna de las respuestas anteriores).
Siga leyendo para obtener más detalles ... (las citas son de sus páginas de proyecto) ...
Administrador de la página del nodo (D6 o D7):
Este módulo agrega un panel de configuración de administración para manejar / acceder a la página del nodo . Una vez que se activa, hay tres configuraciones posibles:
- Core: Drupal core manejará el acceso a la página de nodo como de costumbre: todos los usuarios con permiso de 'contenido de acceso'
- Deshabilitado: nadie podrá acceder / nodo. Volverá 'Página no encontrada' (404).
- Con permiso: el acceso se gestionará con un nuevo permiso: 'página de nodo de acceso'
Nodo Desactivar página (D6 o D7, aunque solo versiones rc2):
Permite un fácil acceso a la interfaz de usuario y la desactivación de la ruta / nodo cuando no se usa. Esto se inspiró en una consideración de seguridad en el Módulo de control de producción .
la mejor manera es ocultar los nodos de la función 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']);
}
}
}