在 Laravel 8 中阻止 http 访问

Posted

技术标签:

【中文标题】在 Laravel 8 中阻止 http 访问【英文标题】:Preventing http access in Laravel 8 【发布时间】:2022-01-06 03:10:44 【问题描述】:

我有一个关于在 laravel 中强制使用 HTTPS 的问题,我在 AppServiceProvider.php 中添加了一个条件,创建了一个中间件并修改了 .htaccess 文件。但我仍然可以访问 http 页面。有没有其他方法可以让 laravel 重定向到 https 而不是 http,以及如何防止用户访问 http 地址?谢谢!

我的 .htaccess :

RewriteEngine On
RewriteCond %REQUEST_URI !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]
RewriteCond %HTTPS !=on
RewriteRule ^ https://%HTTP_HOST%REQUEST_URI [L,R=301]

AppServiceProvider.php:

public function boot()

    if (env('APP_ENV') === 'production') 
        $this->app['request']->server->set('HTTPS','on'); // this line

        URL::forceSchema('https');
    

HttpsProtocolMiddleware:

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

    if (!$request->secure() && app()->environment('production')) 
        return redirect()->secure($request->getRequestUri());
    
    
    return $next($request);

【问题讨论】:

这能回答你的问题吗? How to force Laravel Project to use HTTPS for all routes? @KenLee 不,它没有 【参考方案1】:

将此添加到您的 .htaccess 文件的顶部

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

【讨论】:

以上是关于在 Laravel 8 中阻止 http 访问的主要内容,如果未能解决你的问题,请参考以下文章

被 CORS 政策阻止并没有解决! Laravel + Vuejs

Laravel + Angular 从外部网络访问被 CORS 阻止

CORS 策略已阻止访问 XMLHttpRequest - Laravel 5.8

如何在 Laravel 8 的 Request 类中访问模型实例?

CORS 策略已阻止从源“http://localhost:3000”访问“http://localhost:8000/api/puppies”获取

Laravel 7.x Middleware(can:gatename) 它实际上阻止每个人访问某个页面。我做错啥了?