Drupalには、デフォルトでnodeパスに割り当てられたページ(デフォルトのホームページ)が付属しています。
ユーザーがアクセスしないようにして、サイトの実際のホームページにリダイレクトするにはどうすればよいですか?
そのページを非表示にする簡単な方法はありません。使用しない場合は、 hook_menu_alter() を実装し、完全に削除するか、アクセスコールバックをFALSE
に設定します。
/ nodeからフロントページとして使用するページにリダイレクトするパスエイリアスを作成します。
エラー404ページが表示されるように、/ nodeのページコールバックを変更することを好みます。
/nodeにアクセスすると、常にカスタム404ページが表示されます。
function yourmodule_menu_alter(&$items) {
$items['node']['page callback'] = 'drupal_not_found';
}
<?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 = '';
}
}
?>
Redirect モジュールを使用しました。node
から<front>
への新しい301リダイレクトを追加しました。
公開されていない/ nodeにマップされたページを作成できます。したがって、このパスを呼び出すユーザーはアクセス禁止ページを持ちます
Berdirsの回答と同様に、私がビルドしたカスタムディストリビューションの一部であるモジュールに次のコードが含まれています。
function HOOK_menu_alter(&$items) {
$items['node']['page callback'] = '_HOOK_empty_home';
}
function _HOOK_empty_home() {
drupal_set_title('');
return '';
}
そうすることで、「ノード」パスをフロントページとして保持し、コンテキストを使用してブロックを配置して必要なフロントページを構築できます。
ノードURLを使用して新しいページを作成すると、フロントページにアクセスするか、何かのカテゴリを選択するようにリダイレクトするメッセージが表示されます。
私にとっての簡単な解決策は、ホームページにしたいページを作成し、URLを/ nodeに設定することでした。次に、/ admin/config/system/site-informationの下で、デフォルトのフロントページを/ nodeに設定します。誰かが実際に入力しない限り、URLに「/ node」が表示されることはありません。ホームページのURLを/ nodeに設定したい場合は、すばやく簡単でわかりやすくなっています。
複数のことを試しました。次に、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 のセキュリティに関する考慮事項に触発されました。
ノードを作成してから、サイト構成->サイト情報に移動し、ホームページをノードのパスに設定します。したがって、それが最初のノードである場合、node/1になります。
編集:デフォルトでは、ノードを作成するだけで、「最初のページに昇格」をチェックすると、そのページが消えます。サイト情報ステップにより、そのノードが実際のフロントページになります。
Rules モジュールを使用して、ページを表示する前にURLを確認し、必要に応じてユーザーを別のページにリダイレクトできます。