LoginSignup
0
4

More than 3 years have passed since last update.

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

Posted at

軽量な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で作る・作り直すというケースがありそうかなと思って調べてみました。

0
4
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
0
4