ルートパターンにおける末尾の「/」

Slimは末尾にスラッシュが付いたURLパターンを、付いていないパターンとは異なるものとして扱います。つまり、/user/user/は異なり、別々のコールバックをアタッチできます。

GETリクエストでは永続的なリダイレクトで問題ありませんが、POSTやPUTなどの他のリクエストメソッドでは、ブラウザーはGETメソッドで2回目のリクエストを送信します。これを回避するには、単にRequestオブジェクトの末尾のスラッシュを削除し、操作されたURLを次のミドルウェアに渡す必要があります。

末尾に/が付いているすべてのURLを、末尾のない/同等のURLにリダイレクト/書き換えたい場合は、middlewares/trailing-slashミドルウェアを検討してください。あるいは、ミドルウェアを使用すると、すべてのURLに強制的に末尾のスラッシュを追加することもできます。

use Middlewares\TrailingSlash;

$app->add(new TrailingSlash(trailingSlash: true)); // true adds the trailing slash (false removes it)