问题: 如何在 Laravel 5 应用程序中将所有请求重定向到 HTTPS,同时允许例外具体的域?
答案:
要强制执行 HTTPS 重定向,您可以使用中间件类。操作方法如下:
namespace MyApp\Http\Middleware; use Closure; use Illuminate\Support\Facades\App; class HttpsProtocol { public function handle($request, Closure $next) { // In production environment, redirect non-secure requests if (!$request->secure() && App::environment() === 'production') { return redirect()->secure($request->getRequestUri()); } return $next($request); } }
应用程序:
在 Kernel.php 文件中注册中间件:
protected $middleware = [ ... 'MyApp\Http\Middleware\HttpsProtocol', ];
Cloudflare 配置:
如果您正在使用Cloudflare,您可能会遇到重定向循环。要解决此问题:
将以下行添加到您的中间件:
$request->setTrustedProxies([$request->getClientIp()]);
在 Cloudflare 的控制面板中,创建一个新的页面规则:
Laravel v5.3 及更高版本:
对于 Laravel v5。 3及更高版本,只需在web中包含中间件组:
protected $middlewareGroups = [ 'web' => [ ... 'MyApp\Http\Middleware\HttpsProtocol' ], ];
其他注意事项:
以上是如何将所有 Laravel 5 请求重定向到 HTTPS(域例外)?的详细内容。更多信息请关注PHP中文网其他相关文章!