投稿者: Tomotoshi Sugishita
2009年5月28日 21:07
今日は珍しく、PHP 製 CMS の drupal の話題。
某サイトの構築で、クリーンURLの設定にちょっと悩んだのでメモ書きです。
drupal の各ページの URL はデフォルトだと domainname/?q=/11 なんて表示されるんだけど、これをユーザーフレンドリーな URL (例えば、domainname/hoge/ など)に変更する方法。
-
Apache の mod_rewrite が必要となるので、インストールされていない場合は、インストール。(httpd.conf も必要に応じて修正すること)
-
httpd.conf を編集し、.htaccess によるオーバーライドを許可するために、AllowOverride が適切に設定されているかどうかを確認し、必要であれば修正し、Apacheを再起動。
-
drupal の フォルダ内にある、.htaccess ファイル(なければ作成) を開き、以下の行を追加。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
※正規表現で記述されている RewriteCond ディレクティブと、RewriteRule については、仮想フォルダで運用している場合は、仮想フォルダ名を正規表現に含むとよいでしょう。(上記はルートレベルのURLの例です)
-
管理者でログインし、「管理セクション」→「サイトの構築」→「モジュール」を選択します。
-
Path モジュールを有効にし、「設定の保存」ボタンをクリック。
-
ここまでの設定が完了していれば、「管理セクション」→「クリーンURL」を開くと、クリーンURLの設定を有効にするラジオボタンが設定可能になっていますので、有効をチェックし「設定の保存」ボタンをクリック。(ここがグレーアウトされている場合は、ここまでの設定のいずれかが有効になっていない可能性があります。)
-
各コンテンツの設定を開き、URL path settings に任意のパスを入力し、「保存」ボタンをクリック。
-
保存後、設定されたURLに自動的にリダイレクトされます。
パスには、/ (スラッシュ)を含んで階層構造に見立てることも可能です。
毎度、テキストのみの手抜きの手順で申し訳ない。
b442513e-56c4-490a-9a28-0373aacaf3c9|0|.0
タグ: php
drupal