Como oculto a página / nó padrão?

22

O Drupal pronto para uso vem com uma página (que é a página inicial padrão) atribuída ao caminho do .

Como evito que os usuários o alcancem e os redireciono para a página inicial real do site?

wiifm
fonte
Usei a solução proposta por @kiamlaluno para redirecionar o nó para um caminho diferente.

Respostas:

17

Não existe uma maneira fácil de ocultar essa página. Se você não o usar, poderá implementar hook_menu_alter () e removê-lo completamente ou definir seu retorno de chamada de acesso para FALSE.

Berdir
fonte
1
Aqui está a resposta boa de Clive com exapmle código drupal.stackexchange.com/a/24133/6309
milkovsky
8

Crie um alias de caminho que redirecione de / node para a página que você deseja usar como primeira página.

kiamlaluno
fonte
1
Isso não funciona para mim com o módulo de alias de URL, aliasing / node para <front> ou index.php. Eu estou tentando encaminhar para apenas /
john
5
Estranho eu fiz / nó para <front> e funciona bem.
22612 Sean Bannister
Como você @john, a interface do usuário do alias não permite que eu avance para a primeira página. Eu tive que usar o módulo de redirecionamento.
Postscripter
6

Prefiro alterar o retorno de chamada da página / node para que ele mostre um erro 404 Page.
Isso sempre mostra sua página 404 personalizada ao acessar / node.

function yourmodule_menu_alter(&$items) {
    $items['node']['page callback'] = 'drupal_not_found';      
}
Marc Bachmann
fonte
4
<?php
function MY_MODULE_menu_alter(&$callbacks) {
unset($callbacks['node']);
}
?>

ou adicione-o a settings.php (material de entrada de URL)

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

Usei o módulo Redirecionar : acabei de adicionar um novo redirecionamento 301 de nodepara <front>.

ACD
fonte
1

Semelhante à resposta dos berdirs, tenho o código a seguir incluído em um módulo que faz parte de uma distribuição personalizada da qual construímos:

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

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

Dessa forma, posso manter o caminho do 'nó' como a página inicial e usar o contexto para posicionar os blocos para criar a página inicial necessária.

Decifrar
fonte
1

Você pode criar uma página mapeada para / node que não seja publicada. Portanto, os usuários que chamarão esse caminho terão uma página de acesso proibido

pitop
fonte
1

A solução mais fácil para mim foi criar uma página na qual eu queria ser a página inicial e definir a URL como / node. Em / admin / config / system / site-information, defina a primeira página padrão como / node. Você nunca vê "/ node" no URL, a menos que alguém o digite. É rápido, fácil e limpo, desde que você queira definir o URL da página inicial como / node.

Jack McKenzie
fonte
1

Você pode criar uma nova página com o URL do nó e as pessoas podem ver uma mensagem redirecionando-as para visitar a página inicial ou escolher uma categoria de algo.

Mario
fonte
1

Eu tentei várias coisas. Então, para o Drupal 7 e 8, achei mais fácil, sem escrever nenhum código:

faça o download e ative os módulos node_page_disable, globalredirect e redirect.

(Nota: o módulo node_page_disable redireciona / nó para a página de erro 404 não encontrada.)

adicione um redirecionamento para / node -> página inicial

Observe que o redirecionamento redireciona ambos / node e / node / para a página inicial.

e um artigo útil para ler: https://www.drupalaid.com/blog/3-things-you-should-hide

Kasım Burak Özdemir
fonte
É uma visão no D8, então drush @example.com views-disable frontpagea desativará. Ainda receberá um 404, até que as outras coisas sejam feitas.
Colan
0

Crie um nó, vá para configuração do site -> informações do site e defina a página inicial como o caminho do nó. Portanto, se for o seu primeiro nó, seria o nó / 1.

Editar: por padrão, apenas criando um nó nessa página desaparecerá se você marcar 'promover para a primeira página'. A etapa de informações do site fará desse nó sua primeira página real.

Mike L.
fonte
1
É verdade, mas /nodeainda pode ser alcançado, ele só não será visível por padrão
Laxman13
Eu interpretei mal o que ele estava pedindo. E o módulo http://drupal.org/project/path_redirect do redirecionamento de caminho ?
Mike L.
1
Infelizmente, o Redirecionamento de caminho não permite redirecionar de caminhos existentes. Ele verifica se o caminho do qual você está tentando redirecionar é válido e, nesse caso, o redirecionamento não é criado e um aviso é exibido.
precisa saber é o seguinte
Legal. Eu não o uso há algum tempo, então não foi positivo. Obrigado!
Mike L.
0

Você pode usar o módulo Regras para verificar o URL antes de exibir uma página e redirecionar os usuários para outra página, se desejar.

  • Adicionar regra ao evento: o conteúdo será exibido
  • Adicionar condição: execute código PHP personalizado e verifique o caminho
  • Adicionar ação: redirecionamento de página e escolha o caminho para o qual você deseja redirecionar
Laxman13
fonte
Isso não apenas introduz severas penalidades de desempenho, mas também deve ser considerado muito inseguro. "Executar PHP customizado" nunca deve ser sugerido, a menos que todos os efeitos colaterais e desvantagens sejam muito conhecidos. -1 para isso.
BERKES
@berkes Eu diria que é porque o Rules fará uma verificação em cada carregamento de página e, portanto, torna o site mais lento? Por que é que "Executar php personalizado" sempre é desaprovado? Obviamente, não é bom para o usuário final, mas também existem desvantagens no uso do desenvolvedor? Desculpe, por muito tempo, trabalhando duro para ser o melhor que posso com o Drupal e aprendendo os detalhes. (Poderia acrescentar segunda parte como própria pergunta se necessário)
Laxman13
considere um novo Q "Quais são as desvantagens de usar o PHP 'customizado'" com algumas áreas de exemplo (blocos, argumentos de exibição, filtro php etc.) onde isso pode ser discutido?
precisa
0

Pergunta popular de alguns anos atrás, com algumas respostas interessantes já. No entanto, adivinhe: "Hoje em dia há um módulo para ele ... na verdade, até dois!" (não mencionado em nenhuma das respostas anteriores).

Continue lendo para obter mais detalhes ... (as citações são das páginas dos projetos) ...

Administrador da página do nó (D6 ou D7):

Este módulo adiciona um painel de configurações de administração para manipular / acessar a página do . Uma vez ativado, há três configurações possíveis:

  • Núcleo - o núcleo do Drupal manipulará o acesso à página do nó como de costume: todos os usuários com permissão 'acessar conteúdo'
  • Desativado - ninguém poderá acessar / nó. Ele retornará 'Página não encontrada' (404).
  • Com permissão - o acesso será tratado por uma nova permissão: 'access node page'

Desativar página do nó (D6 ou D7, embora apenas as versões rc2):

Permite fácil acesso à interface do usuário e desativação do caminho / nó quando não usado. Isso foi inspirado por uma consideração de segurança no módulo de verificação de produção .

Pierre.Vriens
fonte
-1

a melhor maneira é ocultar nós da função 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
fonte