Help us understand the problem. What is going on with this article?

Slim4をサブディレクトリで走らせる方法

軽量なPHPフレームワークで有名なSlim4を、ルートディレクトリより下のディレクトリで走らせる方法です。このページを元に書いてます。つまり雑な英訳≒要約です。

次のようにApacheサーバーが動いているとします。

  • Rootディレクトリが/var/www/public/
  • URLがhttps://example.com/

こんなウェブサイトがあったときに、

  • Slim4を/var/www/public/test/ディレクトリに展開して、
  • https://example.com/test/としてアクセスしたい。

そんな状況です。

Apacheの設定

/var/www/public/test/.htaccessを作成します。

# Rewrite URL
RewriteEngine on

# redirect to /index.php
RewriteBase /test
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [L,QSA]

ポイントはRewriteBase /testを追加すること。
それとRewriteRuleのファイル名をindex.phpとすること(最初にスラッシュを書かない)。
かな。

Slim4の設定

次に、/var/www/public/test/index.phpで、Slim4を動かします。

ここでアプリに、サブディレクトリで走っていることを教えてあげます。

$app = AppFactory::create();
$app->setBasePath('/test'); // ←この一行を追加!

$app->setBasePath()関数でサブディレクトリ名を指定します。

これで、/testを書かずにルート設定などが可能になります。

自動でBasePathを取得する方法

ベースパスを自動で取得する方法が参考ページにありましたので、興味ある方はそちらを御覧ください。

最後に

ウェブサイトの一部だけをSlim4で作る・作り直すというケースがありそうかなと思って調べてみました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away