gpt4 book ai didi

php - 仅将 ssl 应用于站点的管理路由

转载 作者:太空宇宙 更新时间:2023-11-03 13:16:29 24 4
gpt4 key购买 nike

我有一个用 PHP Laravel 5.1 制作的网站,带有用于管理该网站 CMS 的 PingPong 管理包。

路线如下:

mywebsite » for the public website

mywebsite/admin » for the admin CMS

我的客户只想在 mywebsite/admin 路由中添加 SSL 协议(protocol)。有可能这样做吗?如果是,我是否需要为此添加一些额外的代码行?

最佳答案

您可以创建一个在 URL 不安全(通过 HTTPS)时重定向的中间件。然后在您要强制执行 SSL 的路由上启用该中间件:

<?php // app/Http/Middleware/Secure.php

namespace App\Http\Middleware;

use Closure;

class Secure
{
public function handle($request, Closure $next)
{
if (!$request->isSecure()) {
return redirect()->secure($request->getRequestUri());
}

return $next($request);
}
}

在您的 app/Http/Kernel.php 中添加中间件:

protected $routeMiddleware = [
'secure' => \App\Http\Middleware\Secure::class
];

并在管理路由上启用中间件,例如使用路由组:

Route::group(['middleware' => 'secure', 'prefix' => 'admin'], function () {
// here your routes (without 'admin/' prefix)
});

现在,当有人通过普通 HTTP 访问管理 URL 时,他将被重定向到该路由的 HTTPS 版本。

当然,您需要以适当的方式设置证书,以便可以通过 HTTP 和 HTTPS 访问该站点。

关于php - 仅将 ssl 应用于站点的管理路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34767359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com