LoginSignup
5
5

More than 5 years have passed since last update.

Drupal7をサブディレクトリで動作させる方法

Last updated at Posted at 2015-11-02

概要

Drupal7をドキュメントルートではなくサブディレクトリで動作させる方法です。
Apacheなどのサーバー設定の詳細は記載しません。ご了承ください。

出来ること 例
/var/www/project をドキュメントルートとし、http://example.com/ でアクセス可能になっている場合、
/var/www/project/drupal にdrupal一式を配置して、以下のようなURLでアクセス可能とする。

http://example.com/drupal
http://example.com/drupal/node/100
http://example.com/drupal/admin/config

修正箇所

drupalのルートディレクトリの.htaccessに追記

/var/www/project/drupal/.htaccess
RewriteBase /drupal

ドキュメントルートに.htaccessを配置(もしくは追記)

/var/www/project/.htaccess
  # ルートのアクセスをサブディレクトリdrupalへ
  RewriteCond %{REQUEST_FILENAME} -f [OR]
  RewriteRule ^$ /drupal/index.php [L]

  # ルートファイルへのアクセスは、そのまま有効とする
  RewriteCond %{REQUEST_FILENAME} -f [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^ - [L]

  # サブディレクトリdrupalへファイルアクセスを流す
  RewriteCond %{DOCUMENT_ROOT}/drupal/%{REQUEST_URI} -f [OR]
  RewriteCond %{DOCUMENT_ROOT}/drupal/%{REQUEST_URI} -d
  RewriteRule ^(.*)$ /drupal/$1 [L]

  # その他アクセスはサブディレクトリdrupalへ流す
  RewriteRule ^(.*)$ /drupal/index.php?q=$1&%{QUERY_STRING} [L]

ポイント

ドキュメントルートの.htaccessは記述すると安心ですが、必須ではないです。
その運用に合わせて記述を変えてください。

サブディレクトリで動作させる場合、
カスタムテーマで画像のパスを「/sites/all/〜」など独自に指定してるとパスがずれるので対応が大変になるかも。
リンクの生成はDrupalにお任せするのがベスト。

どうしても、自分でパスを生成する必要があるときは、

ex.php
$base_url  ・・・  : http://example.com 
base_path() ・・・  : /drupal/

などで取得すると楽です。以上です。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5