Php Laravel使用HTTPS

Php Laravel使用HTTPS,php,laravel,.htaccess,laravel-5,laravel-routing,Php,Laravel,.htaccess,Laravel 5,Laravel Routing,我有一个项目,我在ubuntu服务器上安装了SSL证书。我已经完成了我找到的每一个解决方案,但每次打开页面时都会收到这条消息 The requested URL /about was not found on this server. 以下是我为强制Laravel使用https所做的更改: 1-我已更改公用文件夹中的.htaccess并添加了以下行 # Added to Force HTTPS RewriteCond %{HTTPS} !=on RewriteRule ^.*$ https:/

我有一个项目,我在ubuntu服务器上安装了SSL证书。我已经完成了我找到的每一个解决方案,但每次打开页面时都会收到这条消息

The requested URL /about was not found on this server.
以下是我为强制Laravel使用https所做的更改:

1-我已更改公用文件夹中的.htaccess并添加了以下行

# Added to Force HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
2-在app->Providers->AppServiceProvider中,我已将其添加到boot()函数中

3-我创建了php artisan make:middleware ForceSSL,并将以下代码添加到句柄函数中

 if (!$request->secure() && in_array(env('APP_ENV'), ['stage', 'production'])) {
            return redirect()->secure($request->getRequestUri());
        }

        return $next($request);
在Kernal.php中

\MyApp\Http\Middleware\ForceSSL::class
在.env文件中,我已将APP_URL更改为https:// 我还更改了config文件夹中APP.php中的APP_URL


我错过了什么?两天以来,我一直不明白为什么:(

有几件事需要确保工作正常:

  • 您的路由是否在标准HTTP模式下工作,url中没有
    index.php
    。就像有时laravel.com/aboutus不工作,但laravel.com/index.php/aboutus工作。如果是这样,您需要在php中启用
    mod_rewrite
    ,然后在virtualhost配置中添加
    AllowOverride All
    ,然后重新启动apache
  • 谈到HTTPS,您在laravel中的设置将使laravel请求转发到安全的HTTPS url。但是,您的服务器必须能够侦听、处理和响应HTTPS请求
  • 您需要启用yoru virtualhost以侦听端口
    443
    ,这是SSL端口。此外,如果您有SSL证书,还需要配置这些证书
  • 在知道laravel是否在HTTPS上工作之前,制作一个简单的php文件,并尝试使用服务器url的HTTPS访问它。如果这样做,那么您可以检查laravel中的错误。如果没有,那么您的服务器上没有正确配置SSL
  • 最后,检查
    .htaccess
    重写条件
  • php-artisan-config:clear
    php-artisan-route:cache

  • 希望这有助于调试此AWS | Centos | EC2 | AWS证书

    有点晚了,但我自己我只需要在我的env.文件中更改它:

    APP_URL=http://localhost
    
    to
    
    APP_URL=https://localhost
    

    一切都很顺利。

    但没有帮助?您是否在路由中设置了路由/url
    /about
    设置?可能会重新进行配置?
    php artisan config:clear
    使用php artisan route:list检查路由这可能是一个愚蠢的问题,但您是否将vhost设置为除了http之外还提供https服务?默认情况下,您有
    这只适用于http,您还需要一个带有证书配置的
    您使用的是nginx还是apache?(或其他)我使用的是Apache2主页正在打开,所有其他页面都不工作。如果您说您的主页可以使用HTTPS,但不能使用内部页面,请检查
    .htaccess
    文件和
    APP_URL=http://localhost
    
    to
    
    APP_URL=https://localhost