¿Cómo oculto la página / nodo predeterminado?

22

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?

wiifm
fuente
He usado la solución propuesta por @kiamlaluno para redirigir el nodo a una ruta diferente.

Respuestas:

17

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.

Berdir
fuente
1
Aquí está la buena respuesta de Clive con el código exapmle drupal.stackexchange.com/a/24133/6309
milkovsky
8

Cree un alias de ruta que redirija desde / nodo a la página que desea usar como portada.

kiamlaluno
fuente
1
Esto no funciona para mí con el módulo de alias de URL, alias / nodo a <front> o index.php. Estoy tratando de reenviar a solo /
juan
55
Extraño lo hice / nodo a <frente> y funciona bien.
Sean Bannister
Como usted @john, la interfaz de usuario del alias no me permite avanzar a la página principal. Tuve que usar el módulo de redireccionamiento en su lugar.
Postscripter
6

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';      
}
Marc Bachmann
fuente
4
<?php
function MY_MODULE_menu_alter(&$callbacks) {
unset($callbacks['node']);
}
?>

o agregue esto a settings.php (material entrante de URL)

<?php
function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  if ($path == 'node') {
    $result = ''; 
  }
}
?>
AyeshK
fuente
2

Utilicé el módulo Redirect : acabo de agregar una nueva redirección 301 de nodea <front>.

ACD
fuente
1

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.

Descifrar
fuente
1

Puede crear una página asignada a / nodo que no se publique. Entonces, los usuarios que llamarán a esta ruta tendrán una página de acceso prohibido

pitop
fuente
1

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.

Jack McKenzie
fuente
1

Puede crear una nueva página con URL de nodo y las personas pueden ver un mensaje que los redirecciona para visitar la página principal o elegir una categoría de algo.

Mario
fuente
1

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

Kasım Burak Özdemir
fuente
Es una vista en D8, por drush @example.com views-disable frontpagelo que la desactivará. Sin embargo, obtendrá un 404 hasta que se hagan las otras cosas.
colan
0

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.

Mike L.
fuente
1
Es cierto, pero /nodeaún se puede llegar, simplemente no será visible por defecto
Laxman13
Leí mal lo que estaba pidiendo. ¿Qué pasa con el módulo de redirección de ruta http://drupal.org/project/path_redirect ?
Mike L.
1
Desafortunadamente, Path Redirect no le permite redirigir desde rutas existentes. Comprueba si la ruta desde la que intenta redirigir es una ruta válida y, de ser así, la redirección no se crea y se muestra una advertencia.
Laxman13
Guay. No lo he usado en un tiempo, así que no fue positivo. ¡Gracias!
Mike L.
0

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.

  • Agregar regla con evento: el contenido se va a ver
  • Agregar condición: ejecutar código PHP personalizado y verificar la ruta
  • Agregar acción: Redirigir página y elegir la ruta a la que desea redirigir
Laxman13
fuente
Esto no solo introduce sanciones severas de rendimiento, sino que debe considerarse muy inseguro. "Ejecutar PHP personalizado" nunca debería sugerirse a menos que todos los efectos secundarios y desventajas sean muy conocidos. -1 por eso.
berkes
@berkes Supongo que es porque las reglas realizarán una verificación en cada carga de página y, por lo tanto, ralentizarán el sitio. ¿Por qué es que "Ejecutar php personalizado" siempre está mal visto? Obviamente no es bueno para el uso del usuario final, pero ¿existen desventajas también para el uso del desarrollador? Lo siento si es mucho tiempo, he estado trabajando muy duro para ser lo mejor que puedo con Drupal y aprendiendo los "entresijos". (Podría agregar la segunda parte como propia pregunta si es necesario)
Laxman13
considere una nueva Q "¿Cuáles son las desventajas de usar PHP 'personalizado' 'con algunas áreas de ejemplo (bloques, argumentos de vistas, filtro php, etc.) donde esto se puede discutir?
berkes
0

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 .

Pierre.Vriens
fuente
-1

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']);
        }
    }
}
Serg Kushch
fuente