我有项目,并且在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。
我在这里缺少什么?自从两天以来,我不知道为什么:(
答案 0 :(得分:0)
您需要确保工作正常的几件事:
index.php
。就像有时候laravel.com/aboutus不起作用,但是laravel.com/index.php/aboutus起作用。如果是这种情况,则需要在php中启用mod_rewrites
,然后在虚拟主机配置中添加AllowOverride All
并重新启动apache。443
,它是SSL端口。另外,如果您具有SSL证书,则也需要对其进行配置。.htaccess
重写条件。 php artisan config:clear
和php artisan route:cache
希望这有助于调试
答案 1 :(得分:0)
AWS | Centos | EC2 | AWS证书
有点晚了,但是我自己只需要在我的环境中更改它即可。文件:
APP_URL=http://localhost
to
APP_URL=https://localhost
一切正常。