我有一个用PHP Laravel 5.1制作的网站,带有PingPong管理包,用于本网站的管理CMS。
路线如下:
公共网站的mywebsite»
mywebsite / admin» for admin CMS
我的客户只想在mywebsite / admin路由中添加SSL协议。 有可能吗? 如果是,我是否需要为此添加一些额外的代码?
答案 0 :(得分:2)
您可以创建一个中间件,当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都可以访问该站点。