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

Php 仅将ssl应用于站点的管理路由,php,laravel,ssl,https,Php,Laravel,Ssl,Https,我有一个用PHP Laravel 5.1制作的网站,带有乒乓球管理包,用于管理这个网站的CMS 路线如下: mywebsite»用于公共网站 我的网站/管理员»用于管理员CMS 我的客户端只想在mywebsite/admin路由中添加SSL协议。 有可能吗? 如果是,我是否需要为此添加一些额外的代码行?您可以创建一个中间件,在URL不安全时重定向(通过HTTPS)。然后在要实施SSL的路由上启用该中间件: <?php // app/Http/Middleware/Secure.php n

我有一个用PHP Laravel 5.1制作的网站,带有乒乓球管理包,用于管理这个网站的CMS

路线如下:

mywebsite»用于公共网站

我的网站/管理员»用于管理员CMS


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

您可以创建一个中间件,在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);
    }
}
并在管理路由上启用中间件,例如使用路由组:

Route::group(['middleware' => 'secure', 'prefix' => 'admin'], function () {
    // here your routes (without 'admin/' prefix)
});
现在,当有人通过普通HTTP访问管理员URL时,他将被重定向到该路由的HTTPS版本


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

遵循以下讨论“我的客户端只想在mywebsite/admin路由中添加SSL协议”-不要这样做。试图确定某个东西是否不需要安全,并为其启用SSL,这是毫无意义的资源浪费(以及引入bug的风险)。只要在任何地方使用SSL即可。它更简单,对用户更好,对搜索引擎更好。所以,在整个网站中使用SSL没有缺点,对吗?我会告诉他们的。
Route::group(['middleware' => 'secure', 'prefix' => 'admin'], function () {
    // here your routes (without 'admin/' prefix)
});