我与OVH(法国)有共享主机,我的域名有“Let's Encrypt”证书。
然而,我到处寻找在laravel 5.4
中将所有请求从HTTP重定向到HTTPS我找到了一个“.htacces重定向”的解决方案,但我经常在浏览器特别是Google Chrome上出现“TOO_MANY_REDIRECT”错误。
任何人都有重定向所有内容的想法 PS:我的共享托管服务器上没有“sudo”权限(仅使用ssh进行用户访问)
此致
答案 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,而不必更改Apache
或Nginx
配置,则需要按以下步骤更新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,则可以删除条件。