We use Laravel 5. For redirecting http connection to https use Middleware HttpsProtocol.
namespace MyApp\Http\Middleware;
use Closure;
class HttpsProtocol {
    public function handle($request, Closure $next)
    {
            if (!$request->secure() && env('APP_ENV') === 'prod') {
                return redirect()->secure($request->getRequestUri());
            }
            return $next($request); 
    }
}
In our 4 test case correctly works only 1 (last redirect). Other 3 case Middleware adds url extra index.php.
http://www.aqualink.az/index.php ---> https://www.aqualink.az/index.php/index.php http://aqualink.az/index.php ---> https://aqualink.az/index.php/index.php https://www.aqualink.az/index.php ---> https://www.aqualink.az/index.php/index.php https://aqualink.az/index.php ---> https://aqualink.az/index.php
 
     
    