我有一个 Slim 4 应用程序,我正在尝试设置一个将非 https 重定向到 https 的中间件。所以如果我输入
this_website.com
在浏览器中,这会自动重定向到 https://this_website.com
我有一个使用 Slim 3 构建的早期网站,我可以使用以下内容:
final class FullHttpsMiddleware {
public function __invoke($request, $handler) {
$response = $handler->handle($request);
if($request->getUri()->getScheme() !== 'https' ){
if($request->getUri()->getPath() != '/') {
$response = $response->withStatus(302)->withHeader('Location', 'https://' . $request->getUri()->getHost() . $request->getUri()->getBasePath() . '/' . $request->getUri()->getPath() );
} else {
$response = $response->withStatus(302)->withHeader('Location', 'https://' . $request->getUri()->getHost() . $request->getUri()->getBasePath() );
}
}
return $response;
}
}
问题是$request->getUri()->getBasePath()
Slim 4 中不存在该代码。如何更改此代码以在 Slim 4 上工作?