Laravel使用HTTPS

问题描述 投票:0回答:2

我有项目,并且在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()函数中

if (App::environment() === 'production' || App::environment() === 'dev') {
            URL::forceScheme('https');
        }

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

 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。

我在这里缺少什么?自从两天以来,我不知道为什么:(

php laravel .htaccess laravel-5 laravel-routing
2个回答
1
投票
找不到请求的URL / about

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

  1. 您的路由是否在标准HTTP模式下工作,而网址中没有index.php。就像有时候laravel.com/aboutus不起作用,但是laravel.com/index.php/aboutus起作用。如果是这种情况,则需要在php中启用mod_rewrites,然后在虚拟主机配置中添加AllowOverride All,然后重新启动apache。
  2. 来到HTTPS,您在laravel中设置的内容将使laravel请求转发到安全的HTTPS网址。但是,您的服务器必须能够侦听,处理和响应HTTPS请求。
  3. 您需要启用yoru virtualhost来监听端口443,它是SSL端口。另外,如果您具有SSL证书,则也需要对其进行配置。
  4. [在知道laravel是否可以在HTTPS上运行之前,请制作一个简单的php文件,并尝试使用服务器URL的HTTPS对其进行访问。如果可行,那么您可以检查laravel中出了什么问题。如果不是这样,则说明服务器上没有正确配置SSL。
  5. 最后,检查.htaccess重写条件。
  6. [php artisan config:clearphp artisan route:cache

希望这有助于调试


0
投票

AWS | Centos | EC2 | AWS证书

有点晚,但是我自己只需要在环境中更改此设置即可。文件:

APP_URL=http://localhost

to

APP_URL=https://localhost

一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.