Drupal7をサブディレクトリで動作させる方法
概要
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に追記
RewriteBase /drupal
ドキュメントルートに.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にお任せするのがベスト。
どうしても、自分でパスを生成する必要があるときは、
$base_url ・・・ 例 : http://example.com
base_path() ・・・ 例 : /drupal/
などで取得すると楽です。以上です。
Author And Source
この問題について(Drupal7をサブディレクトリで動作させる方法), 我々は、より多くの情報をここで見つけました https://qiita.com/kazunoko/items/f5871636d962fb599f71著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .