【问题标题】:How to redirect from http to https in laravel 5.4如何在 laravel 5.4 中从 http 重定向到 https
【发布时间】:2020-11-04 19:14:20
【问题描述】:

我的网站说“不安全”,我添加了 Https 中间件,但我不明白如何在控制器中调用它,我已经在 Appserviceprovider 中尝试了 forcesheme,但似乎没有任何效果,我已将 SSL 设置为我的域名。请帮忙。

我的 HttpsProtocol 中间件

<?php
namespace App\Http\Middleware;
use Closure;
class HttpsProtocol {
public function handle($request, Closure $next)
{
  if (!$request->secure() && env('APP_ENV') === 'prod') {
    return redirect()->secure($request->getRequestUri());
  }
  return $next($request); 
}

内核.php

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,

        'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
        'Illuminate\Cookie\Middleware\EncryptCookies',
        'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
        'Illuminate\Session\Middleware\StartSession',
        'Illuminate\View\Middleware\ShareErrorsFromSession',
        // appending custom middleware
        'MyApp\Http\Middleware\HttpsProtocol'

    ];

}

【问题讨论】:

  • 这必须在服务器设置(Apache、Nginx)中完成,而不是在代码中
  • @RamizKongulov 所以我不需要在我的项目文件中添加任何额外的 HTTPS 重定向代码吗?非常感谢您的回复

标签: laravel http laravel-5 redirect https


【解决方案1】:

在您的 htaccess 文件中尝试这种方式

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://YOURDOMAIN.COM/$1 [R,L]

【讨论】:

  • 公共文件夹下的htaccess文件?
【解决方案2】:
namespace App\Providers;

use Illuminate\Support\Facades\URL;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        URL::forceScheme('https');
    }
}

【讨论】:

  • 我做到了,但没有添加 URL 外观并且没有工作。让我们看看它是否有效......希望它有效,但非常感谢您的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2018-02-02
  • 2016-09-02
  • 1970-01-01
  • 2017-10-16
  • 1970-01-01
  • 2019-09-10
相关资源
最近更新 更多