栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Laravel 5-重定向到HTTPS

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Laravel 5-重定向到HTTPS

您可以使其与Middleware类一起使用。让我给你个主意。

namespace MyAppHttpMiddleware;use Closure;use IlluminateSupportFacadesApp;class HttpsProtocol {    public function handle($request, Closure $next)    { if (!$request->secure() && App::environment() === 'production') {     return redirect()->secure($request->getRequestUri()); } return $next($request);     }}

然后,将此中间件应用于每个请求,在

Kernel.php
文件中添加设置规则,如下所示:

protected $middleware = [    'IlluminateFoundationHttpMiddlewareCheckForMaintenanceMode',    'IlluminatecookieMiddlewareEncryptcookies',    'IlluminatecookieMiddlewareAddQueuedcookiesToResponse',    'IlluminateSessionMiddlewareStartSession',    'IlluminateViewMiddlewareShareErrorsFromSession',    // appending custom middleware     'MyAppHttpMiddlewareHttpsProtocol'];

在上述示例中,如果满足以下条件,则中间件会将每个请求重定向到https:

  1. 当前请求没有安全协议(http)
  2. 如果您的环境等于
    production
    。因此,只需根据您的喜好调整设置。

云耀斑

我在具有WildCard SSL的生产环境中使用此代码,并且该代码可以正常工作。如果我

&& App::environment() ==='production'
在本地主机中删除并对其进行测试,则重定向也有效。因此,是否安装SSL并不是问题。看来您需要非常注意Cloudflare层才能重定向到Https协议。

编辑23/03/2015

感谢

@Adam link
的建议:很可能是Cloudflare传递的标头引起的。CloudFlare可能通过HTTP命中了您的服务器,并传递了X-
Forwarded-Proto标头,该标头声明其正在转发HTTPS请求。您需要在中间件中添加另一行,说明…

$request->setTrustedProxies( [ $request->getClientIp() ] );

…信任CloudFlare发送的标头。这将停止重定向循环

编辑27/09/2016-Laravel v5.3

只需要将中间件类添加到以下

web
组中
kernel.php file

protected $middlewareGroups = [    'web' => [        IlluminatecookieMiddlewareAddQueuedcookiesToResponse::class,        IlluminateSessionMiddlewareStartSession::class,        IlluminateViewMiddlewareShareErrorsFromSession::class,        // here        MyAppHttpMiddlewareHttpsProtocol::class    ],];

请记住,

web
默认情况下该组将应用于每个路由,因此您无需
web
在路由或控制器中进行显式设置。

编辑23/08/2018-Laravel v5.7

  • 根据环境可以重定向请求
    App::environment() === 'production'
    。对于以前的版本是
    env('APP_ENV') === 'production'
  • 使用
    URL::forceScheme('https');
    实际上不会重定向。
    https://
    网站建成后,它仅与之建立链接。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/568623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号