将所有网址重定向到 HTTPS,但以 "/api" 开头的网址除外



如何将所有请求从http重定向到https(除了到api的请求(?api的Url以/api开头。我使用了这个配置,但似乎不起作用。

RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^api/
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

你能告诉我哪里做错了吗?项目是用拉拉威尔语写的。

提前感谢

如果需要,可以创建一个名为checkHttps的中间件,并粘贴以下代码

<?php
namespace AppHttpMiddleware;
use Closure;
class checkHttps {
public function handle($request, Closure $next) {
if(!request()->is('api/*')) {
if (!$request->secure()) {
return redirect()->secure($request->getRequestUri());
}
}
return $next($request);
}
}

然后将您的中间件添加到内核

protected $middlewareGroups = [
'web' => [
AppHttpMiddlewarecheckHttps::class,
],
];

希望这能解决你的问题。

相关内容