將 URL 範例設為包含尾部斜線時,Slim 會將其視為與不包含時不同。亦即,/user
和 /user/
是不同的,因此可以附加不同的呼叫。
針對 GET 請求,永久重新導向是可以的,但對於其他請求方式(例如 POST 或 PUT),瀏覽器會傳送以 GET 方式為主的第二請求。若要避免此情況,您只需要移除 Request
物件中的尾部斜線,並將處理後的 URL 傳遞給下一個中間件即可。
如果您想要重新導向/改寫所有以 /
結尾的 URL 為非尾部 /
相同位置,請考慮使用 middlewares/trailing-slash 中間件。此外,該中間件還能強制在所有 URL 上追加尾部斜線。
use Middlewares\TrailingSlash;
$app->add(new TrailingSlash(trailingSlash: true)); // true adds the trailing slash (false removes it)