web-dev-qa-db-ja.com

デフォルトのページ/ノードを非表示にするにはどうすればよいですか?

Drupalには、デフォルトでnodeパスに割り当てられたページ(デフォルトのホームページ)が付属しています。

ユーザーがアクセスしないようにして、サイトの実際のホームページにリダイレクトするにはどうすればよいですか?

22
wiifm

そのページを非表示にする簡単な方法はありません。使用しない場合は、 hook_menu_alter() を実装し、完全に削除するか、アクセスコールバックをFALSEに設定します。

17
Berdir

/ nodeからフロントページとして使用するページにリダイレクトするパスエイリアスを作成します。

8
kiamlaluno

エラー404ページが表示されるように、/ nodeのページコールバックを変更することを好みます。
/nodeにアクセスすると、常にカスタム404ページが表示されます。

function yourmodule_menu_alter(&$items) {
    $items['node']['page callback'] = 'drupal_not_found';      
}
6
Marc Bachmann
<?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
AyeshK

Redirect モジュールを使用しました。nodeから<front>への新しい301リダイレクトを追加しました。

2
ACD

公開されていない/ nodeにマップされたページを作成できます。したがって、このパスを呼び出すユーザーはアクセス禁止ページを持ちます

1
pitop

Berdirsの回答と同様に、私がビルドしたカスタムディストリビューションの一部であるモジュールに次のコードが含まれています。

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

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

そうすることで、「ノード」パスをフロントページとして保持し、コンテキストを使用してブロックを配置して必要なフロントページを構築できます。

1
Decipher

ノードURLを使用して新しいページを作成すると、フロントページにアクセスするか、何かのカテゴリを選択するようにリダイレクトするメッセージが表示されます。

1
Mario

私にとっての簡単な解決策は、ホームページにしたいページを作成し、URLを/ nodeに設定することでした。次に、/ admin/config/system/site-informationの下で、デフォルトのフロントページを/ nodeに設定します。誰かが実際に入力しない限り、URLに「/ node」が表示されることはありません。ホームページのURLを/ nodeに設定したい場合は、すばやく簡単でわかりやすくなっています。

1
Jack McKenzie

複数のことを試しました。次に、Drupal 7および8の場合、コードを記述せずにこれが最も簡単であることがわかりました。

node_page_disable、globalredirect、およびredirectモジュールをダウンロードして有効にします。

(注:node_page_disableモジュールは/ nodeを404 not foundエラーページにリダイレクトします。)

次に、/ node->フロントページのリダイレクトを追加します

リダイレクトは、/ nodeと/ node /の両方をフロントページにリダイレクトすることに注意してください。

そして読むのに便利な記事: https://www.drupalaid.com/blog/3-things-you-should-hide

かなり前からの人気のある質問で、かなり興味深い回答がすでにあります。しかし、「今日はそのためのモジュールがある...実際には2つもある!」 (以前の回答のいずれにも言及されていません)。

詳細については、次をお読みください...(見積もりはプロジェクトページから)...

ノードページ管理者(D6またはD7のいずれか):

このモジュールは、/ nodeページアクセスを処理するための管理設定パネルを追加します。有効化すると、3つの構成が可能になります。

  • コア-Drupalコアは通常どおりノードページアクセスを処理します:「コンテンツへのアクセス」権限を持つすべてのユーザー
  • 無効-誰も/ nodeにアクセスできません。 「ページが見つかりません」(404)を返します。
  • アクセス許可-アクセスは新しいアクセス許可で処理されます: 'アクセスノードページ'

Node Page Disable(D6またはD7、rc2バージョンのみ):

使用しない場合、簡単なUIアクセスとパス/ nodeの無効化を許可します。これは、 Production Check Module のセキュリティに関する考慮事項に触発されました。

0
Pierre.Vriens

ノードを作成してから、サイト構成->サイト情報に移動し、ホームページをノードのパスに設定します。したがって、それが最初のノードである場合、node/1になります。

編集:デフォルトでは、ノードを作成するだけで、「最初のページに昇格」をチェックすると、そのページが消えます。サイト情報ステップにより、そのノードが実際のフロントページになります。

0
Mike L.

Rules モジュールを使用して、ページを表示する前にURLを確認し、必要に応じてユーザーを別のページにリダイレクトできます。

  • イベントのルールを追加:コンテンツが表示されます
  • 条件を追加:カスタムを実行PHP codeおよびパスを確認
  • アクションを追加:Page Redirectとリダイレクト先のパスを選択
0
Laxman13