サブディレクトリに別のシステムを設置する方法


a-blog cms がインストール済みのサーバーで、特定のサブディレクトリだけ別のシステムを動かしたい場合の設定方法です。

こんなケースで使えます

  • /blog/ 以下に WordPress を設置したい

  • /shop/ 以下に EC サイト(別 CMS) を設置したい

  • /info/ 以下に 別の a-blog cms を設置したい

  • /app/ 以下に Laravel などの PHP アプリを設置したい

なぜ設定が必要なの?

a-blog cms は .htaccess による URL 書き換えを使っており、実際のフォルダ構造と URL が一致しない仕組みです。

この書き換え処理はサイト全体に影響するため、そのままだとサブディレクトリに別システムを置いても処理が干渉してしまい、別システムが意図しない動作をする原因になります。

対処方法

ルートディレクトリの .htaccess に、対象フォルダを書き換え処理から除外する記述を追加します。

以下は /other/ ディレクトリを除外する例です(ver 1.6.2 以降はコメントアウトで記載済み)。

# ------------------------------------------------------------------
# a-blog cms以外のコンテンツ(a-blog cmsを動作させないコンテンツ)
# ------------------------------------------------------------------
RewriteCond %{REQUEST_URI} !^/?other/
# RewriteCond %{REQUEST_URI} !^/?other2/

other の部分を除外したいディレクトリ名に変更してください。複数除外したい場合は RewriteCond を繰り返し追加します。

RewriteCond %{REQUEST_URI} !^/?blog/
RewriteCond %{REQUEST_URI} !^/?shop/