Umi Blog
ウミブログ
ここではDrupalのクリーンURL機能について解説します。
クリーンURLとはDrupalにGETメソッドによるクエリ文を、ウェブサーバーのURL加工機能(その多くはApacheのRewriteモジュール)によって、余計なURLパラメーターを省き、URLをクリーンにする機能です。
Wordpressをご存知の方で言えば、パーマリンクの設定に似ているかもしれません。
具体的な例を示すと、クリーンURLを有効にするとURLが下記の様に変わります。
違いは一目瞭然ですね。URLの?q=の部分が省略されています。
クリーンURLを利用することによって、こんな利点があると言われています。
Drupalで構築されたサイトのその殆どはクリーンURL機能を有効にされています。特にSEOを意識したサイトならクリーンURLを有効にして損することはありません。
クリーンURLを利用するにはサーバー側での対応が必須となり、Apacheでは下記の条件が当てはまります。
新し目のサーバーならまず動くとは思いますが、古いレンタルサーバーなどではサポートしていない場合があります。
Drupalを運用するサイトがドメインのルートかつ一般的なサーバー設定なら、初期設定で問題ありませんが、下記に該当するようなサーバー設定を行なっている場合はRewriteBaseの設定が必要です。
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 (admin/config/search/clean-urls)のページ移動します。
ここでクリーンURLを有効にするのチェックボックスにチェックを入れられれば、クリーンURLが利用可能な状態です。有効にして設定を保存しましょう。
以上で完了です。設定を有効にするとDrupalで生成しているURLが自動的にクリーンURLに変更されます。ただし、ノードコンテンツの本文(Body)などで既に入力したURLは変換されないので注意してください。SEOを気にする場合はそれらも統一したほうが良いでしょう。
クリーンURLが有効な状態であっても、?q=が付いたURLでもアクセスすることができます。本番で運用していたサイトをローカルに持ってきて、クリーンURLが動かなくて管理画面にアクセスできない、という時の対処にもなります。

Masters of Drupal Engineering.
人に、