如何在laravel 5.4中实现HTTPS

时间:2017-05-22 13:14:26

标签: php laravel ssl https

我与OVH(法国)有共享主机,我的域名有“Let's Encrypt”证书。

然而,我到处寻找在laravel 5.4

中将所有请求从HTTP重定向到HTTPS

我找到了一个“.htacces重定向”的解决方案,但我经常在浏览器特别是Google Chrome上出现“TOO_MANY_REDIRECT”错误。

任何人都有重定向所有内容的想法 PS:我的共享托管服务器上没有“sudo”权限(仅使用ssh进行用户访问)

此致

4 个答案:

答案 0 :(得分:1)

如果不修改 .htaccess 文件,您可以在Laravel应用程序中强制执行https协议:

function boot() {
     URL::forceScheme('https');
     ... your code
}

AppServiceProvider.php

答案 1 :(得分:0)

您可以在'url' => env('APP_URL', 'https://localhost'),中设置config/app.php。这应该可以解决问题。

答案 2 :(得分:0)

除了@Troyer回答,我还将以下代码添加到我的.htacces

RewriteEngine on

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,L,R]

现在所有对HTTP的请求都被重定向到HTTPS而没有" TOO_MANY_REDIRECT"错误 非常感谢你们的回答 最好的问候,

答案 3 :(得分:0)

如果您想在应用的所有URL上强制使用HTTPS,而不必更改ApacheNginx配置,则需要按以下步骤更新AppServiceProvider

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        if (env('APP_ENV') === 'production') {
            $this->app['url']->forceScheme('https');
        }
    }
}

PS:如果您在本地开发环境中启用了SSL,则可以删除条件。