如何从http到https,已安装的证书和https正在运行

时间:2018-05-23 11:42:20

标签: laravel apache

如果有人直接进入www.myapp.com,浏览器会将他们带到http://www.myapp.com

myapp配置为使用https,所以如果我们手动输入https://www.myapp.com,那么laravel是否正确生成https网址没有问题?

如果用户只是输入www.myapp.com而不是浏览器将其转到http,我怎么让浏览器转到https?

实现这一目标的最优雅的地方在哪里?

3 个答案:

答案 0 :(得分:1)

你可以使用这样的中间件:

 public function handle($request, Closure $next)
    {

      if (!app()->environment('local')) {
            // for Proxies
        Request::setTrustedProxies([$request->getClientIp()]);

        if (!$request->isSecure()) {
            return redirect()->secure($request->getRequestUri());
        }
    }

        return $next($request);
    }

答案 1 :(得分:1)

您应该在 .htaccess 文件中加入此内容:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

答案 2 :(得分:0)

\URL::forceScheme('https');添加到AppServiceProvider

这是一个可选的解决方案。