【发布时间】:2020-10-17 10:36:37
【问题描述】:
我正在尝试将我的网站配置为从 http 重定向到 https。
AppServiceProvider.php
public function boot()
{
if($this->app->environment('production')) {
\URL::forceScheme('https');
}
.env
APP_URL=https://127.0.0.1:8000
我在根目录下创建了一个 HttpsProtocol 文件
App/Http/Middleware/HttpsProtocol.php
<?php
namespace App\Http\Middleware;
use Closure;
class HttpsProtocol {
public function handle($request, Closure $next)
{
if (!$request->secure()) {
return redirect()->secure($request->getRequestUri());
}
return $next($request);
}
}
?>
kernel.php
protected $middlewareGroups = [
'web' => [
...
...
\App\Http\Middleware\HttpsProtocol::class,
],
config/app.php
'url' => env('APP_URL', 'https://localhost'),
当我通过https://127.0.0.1:8000/ 进入时,它给了我这个网站无法访问
【问题讨论】:
-
如果您认为必须在本地拥有 https 才能测试某些内容,那么您可能做错了。
-
您需要在本地安装 SSL
-
Https 通常在端口 443 上,这是大多数浏览器所期望的。无论如何,要设置 https,您需要在您的服务器(apache 或 nginx)中配置它,而不仅仅是在您的代码中。
标签: php laravel https middleware