ここではDrupalのクリーンURL機能について解説します。
クリーンURLとはDrupalにGETメソッドによるクエリ文を、ウェブサーバーのURL加工機能(その多くはApacheのRewriteモジュール)によって、余計なURLパラメーターを省き、URLをクリーンにする機能です。
Wordpressをご存知の方で言えば、パーマリンクの設定に似ているかもしれません。
クリーンURLの例
具体的な例を示すと、クリーンURLを有効にするとURLが下記の様に変わります。
- クリーンURLが無効: http://drupal.org/?q=node/1
- クリーンURLが有効: http://drupal.org/node/1
違いは一目瞭然ですね。URLの?q=の部分が省略されています。
クリーンURLの利点
クリーンURLを利用することによって、こんな利点があると言われています。
- URLを階層化できるのでSEOに良い。
- URLの見た目がシンプルになる。
Drupalで構築されたサイトのその殆どはクリーンURL機能を有効にされています。特にSEOを意識したサイトならクリーンURLを有効にして損することはありません。
クリーンURLの利用条件
クリーンURLを利用するにはサーバー側での対応が必須となり、Apacheでは下記の条件が当てはまります。
- mod_rewriteモジュールが利用できる状態であるか。
- .htaccess等でmod_rewriteの設定が可能であるか。
新し目のサーバーならまず動くとは思いますが、古いレンタルサーバーなどではサポートしていない場合があります。
RewriteBaseの書き換えが必要なパターン
Drupalを運用するサイトがドメインのルートかつ一般的なサーバー設定なら、初期設定で問題ありませんが、下記に該当するようなサーバー設定を行なっている場合はRewriteBaseの設定が必要です。
- サブディレクトリで運用している (例: example.com/drupal/ )
- VhostAliasモジュールを利用している
- UserDirモジュールを利用している
.htaccessの修正
Drupalをインストールしたルートフォルダ内にある.htaccessをテキストエディタで開きます。
ドメインのルートがDrupalの場合は、110行目をアンコメントして下記の様に修正します。
# If your site is running in a VirtualDocumentRoot at http://example.com/,
# uncomment the following line:
RewriteBase /
サブディレクトリでDrupalを運用している場合は106行目をアンコメントし、パスを適宜変更してください。例えば、http://example.com/drupal7siteと言うURLで運用している場合は下記の様に修正します。
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
RewriteBase /drupal7site
手前味噌ですが、弊社の山中がこれらトラブルの対処方法を書いておりますので、もしお困りの場合はご覧ください。
Drupal7でclean URL(クリーンURL)が使えないと思った時の対処法
クリーンURLが利用可能か確認して有効化
管理ページ > 環境設定 > クリーン URL (admin/config/search/clean-urls)のページ移動します。
ここでクリーンURLを有効にするのチェックボックスにチェックを入れられれば、クリーンURLが利用可能な状態です。有効にして設定を保存しましょう。
以上で完了です。設定を有効にするとDrupalで生成しているURLが自動的にクリーンURLに変更されます。ただし、ノードコンテンツの本文(Body)などで既に入力したURLは変換されないので注意してください。SEOを気にする場合はそれらも統一したほうが良いでしょう。
クリーンURLが有効でもGETクエリは使えます
クリーンURLが有効な状態であっても、?q=が付いたURLでもアクセスすることができます。本番で運用していたサイトをローカルに持ってきて、クリーンURLが動かなくて管理画面にアクセスできない、という時の対処にもなります。
募集しています
スタジオ・ウミは「Drupal」に特化したサービスを提供する Drupal のエキスパートチーム。
フルリモート&フレックス制だから、働く場所を選ばず時間の使い方も自由です。
そんなワークライフバランスの整った環境で、当ブログに書かれているような
様々な技術を共に学びながら、Drupalサイト開発に携わってみたい方を募集しています。
まずはお話だけでも大歓迎!ぜひお気軽にご連絡ください。