繁体   English   中英

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

[英]Redirect all urls to HTTPS except one which starts with “/api”

除了对api的请求外,如何将所有请求从http重定向到https? 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,
    ],
];

希望这能解决您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM