将所有网址重定向到 HTTPS,但以“/api”开头的网址除外
Redirect all urls to HTTPS except one which starts with "/api"
如何将所有请求从 http 重定向到 https,但 api 的请求除外? Url for api 以 /api 开头。
我使用了这个配置,但似乎不起作用。
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^api/
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
你能告诉我哪里做错了吗?项目写在Laravel.
提前致谢
如果你需要这个,你可以创建一个名为 checkHttps
的中间件并粘贴以下代码
<?php
namespace App\Http\Middleware;
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' => [
\App\Http\Middleware\checkHttps::class,
],
];
希望这能解决您的问题。
如何将所有请求从 http 重定向到 https,但 api 的请求除外? Url for api 以 /api 开头。 我使用了这个配置,但似乎不起作用。
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^api/
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
你能告诉我哪里做错了吗?项目写在Laravel.
提前致谢
如果你需要这个,你可以创建一个名为 checkHttps
的中间件并粘贴以下代码
<?php
namespace App\Http\Middleware;
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' => [
\App\Http\Middleware\checkHttps::class,
],
];
希望这能解决您的问题。