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)