アイキャッチ画像: デスクの上でパソコンを使用している

こんにちは。新しい案件で半年ぶりにコーディング作業に参加できそうで、少しワクワクしている大野です。

今回はDrupal 7に標準で含まれている、Pathモジュールについて解説します。

Drupalで記事を作成した時、初期設定では http://example.com/node/1 と言うようなURLになって、見た目だけでは何のページだか解らなくて味気ないですよね。PathモジュールはそんなURLに対して、エイリアス(別名)を付けることができるモジュールです。

文章だけでは解りにくいので実際にどんなURLになるか見てみましょう。

元のURL:
http://example.com/node/1

エイリアスを付けたURL:
http://example.com/great-page

注: この解説はクリーンURLが有効になっていることが前提の記事となっていますが、URLが少し変わるだけで設定に違いはありません。クリーンURLの設定方法についてはこちらの記事をご参考にしていただければと思います。

モジュールを有効にする

PathモジュールはDrupalに標準で含まれているコアモジュールなので、新たにファイルを追加必要はありません。モジュールの管理ページ(admin/modules)からPathと書かれたモジュールを有効にするだけです。

Screen shot

権限設定

ユーザーの権限設定ページ(admin/people/permissions)へアクセスしてください。Pathモジュールには二つの権限設定があるので適宜設定してください。

Screen shot

  • URLエイリアスの管理: URLエイリアスの管理ページへアクセスができるようになります。また、ノードコンテンツ以外のパスに対してもエイリアスの設定が可能になります。
  • URLエイリアスの作成と編集: コンテンツの作成画面でURLのエイリアスを設定できる権限です。

ノードコンテンツに対してエイリアスを設定する例

ノードコンテンツにエイリアスを付けることは簡単です。モジュールが有効になっていればコンテンツの作成画面(例: node/add/page)にURLエイリアスの設定と書かれたメニューが有るので、そのフィールドにURLエイリアスを入力するだけで設定できます。

Screen shot

設定するとブラウザのURLはこんな感じになります。

Screen shot

管理ページの解説

管理 > 環境設定 > URLエイリアス(admin/config/search/path) からPathモジュールの管理ページへアクセスします。

Screen shot

ここではサイト上に設定されている全てのURLエイリアスが表示され、検索したり編集することができます。

URLエイリアスの設定例

では実際にURLエイリアスを設定してみましょう。前項の画面にあるエイリアスを追加のリンクをクリックしてください。今回は、一番最初に作られるユーザーのプロフィールページのパス(user/1)を admin-profile と言うパスにしたい場合を例として設定してみます。

Screen shot

言語はすべての言語を選択し、既存のシステムパスにuser/1、パスエイリアスにadmin-profileと入力します。最後に保存ボタンを押せば完了です。

ブラウザから見たURLはこんな感じになります。

Screen shot

Drupalが生成するURLは自動的にエイリアスが適用される

DrupalはURLを生成する際に、そのパスに対してエイリアスが設定されていればそれを利用するようになっています。例えば、メニューの管理ページで言うと、設定したメニューのパスに node/1 と入力しても、システムがURLを生成する際に great-page となるように自動的に書き換えてくれます。これが何を意味するかと言うと、管理者はエイリアスの変更を殆ど気にすること無く、メニューを構成したり、モジュールの開発ができると言うことになります。ただし、Drupalが管理していないノードコンテンツの本文に書かれたパスなどは変換されないので、ユーザー自身で書き換えてください。

システムの言語設定を切り替えた時の不具合について

Drupalサイトを開発する際に、初期はDrupalの言語設定が英語だったけど途中で日本語に変更する、と言ったケースがあるかと思います。この時にURLエイリアスを設定しているにも関わらず、設定が反映されないように見えると言う不具合が発生し、Drupalに入門したての方がよくハマるポイントがあります。

この現象は、英語環境で作成したノードコンテンツのURLエイリアスの言語設定が英語となっていることが原因です。URLエイリアスは言語ごとに設定を持っているので、こうなってしまった場合はパスモジュールの管理ページから該当するエイリアスを編集して、言語の設定をすべての言語にするか、日本語にすれば解消します。

まとめ

  • Pathモジュールは既存のパスを別のパスにしたい時に利用する。
  • エイリアスを設定したURLと、設定元のURLは両方同時に使うことができる。
  • Drupalが生成するリンクは、自動的にエイリアスが使用される。
  • ノードコンテンツの本文に書かれたURLなどは書き換えの対象外。
  • URLエイリアスを意識して日本語サイトを作る場合は、最初からシステムの言語を日本語に設定する。

URL内にキーワードを含むことはSEO対策に有効と言われています。少しでもSEOを気にしているサイトなら、Pathモジュールを活用してSEOに効果的なサイトを構築しましょう。