Slim 将带有尾随斜杠的 URL 模式视为与没有尾随斜杠的 URL 模式不同。也就是说,/user
和 /user/
是不同的,因此可以附加不同的回调。
对于 GET 请求,永久重定向是好的,但对于其他请求方法(如 POST 或 PUT),浏览器会使用 GET 方法发送第二个请求。为避免这种情况,您只需在 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)